@@ -13,12 +13,12 @@ export class CompletionItems extends Base implements CompletionItemProvider {
13
13
// Condition for checkAndConfirm to work as expected
14
14
private isDirectoryChanged : boolean = false ;
15
15
16
- private checkAndConfirm ( item : string ) {
16
+ protected checkAndConfirm ( item : string ) : boolean {
17
17
if ( this . isDirectoryChanged )
18
18
return false ;
19
19
else {
20
20
for ( let i = 0 ; i < this . completionItemList . length ; i ++ )
21
- if ( JSON . parse ( JSON . stringify ( this . completionItemList [ i ] . label . valueOf ( ) ) ) [ "label" ] === item )
21
+ if ( JSON . parse ( JSON . stringify ( this . completionItemList [ i ] . label . valueOf ( ) ) ) === item )
22
22
return true ;
23
23
return false ;
24
24
}
@@ -157,15 +157,27 @@ export class CompletionItems extends Base implements CompletionItemProvider {
157
157
export class RelativeVariableCompletionProvider extends Base implements CompletionItemProvider {
158
158
public completionItemList : CompletionItem [ ] = [ ] ;
159
159
160
+ protected checkAndConfirm ( item : string ) : boolean {
161
+ for ( let i = 0 ; i < this . completionItemList . length ; i ++ )
162
+ if ( JSON . parse ( JSON . stringify ( this . completionItemList [ i ] . label . valueOf ( ) ) ) === item )
163
+ return true ;
164
+ return false ;
165
+ }
166
+
160
167
provideCompletionItems ( document : TextDocument , position : Position , token : CancellationToken , context : CompletionContext ) : ProviderResult < CompletionItem [ ] | CompletionList < CompletionItem > > {
161
- let matchChars = this . getCharactersByRange ( document , position , new Position ( position . line , position . character - 1 ) ) ;
162
168
if ( workspace . workspaceFolders ) {
163
- var a = document . fileName ;
164
- if ( a !== undefined ) {
165
- var cjson = new Cjson ( a ) ;
166
- cjson . json ?. getAllKeys ( ) . map ( eachElem => this . completionItemList . push ( new CompletionItem ( eachElem ) ) ) ;
169
+ if ( document . fileName !== undefined ) {
170
+ var cjson = new Cjson ( document . fileName ) ;
171
+ cjson . json ?. getAllKeys ( ) . map ( ( eachElem ) => {
172
+ if ( ! this . checkAndConfirm ( eachElem ) )
173
+ this . completionItemList . push ( new CompletionItem ( eachElem ) ) ;
174
+ } ) ;
167
175
}
176
+ else
177
+ window . showErrorMessage ( "No CJSON file is opened" ) ;
168
178
}
179
+ else
180
+ window . showErrorMessage ( "CJSON requires folder to be opened" ) ;
169
181
return this . completionItemList ;
170
182
}
171
183
resolveCompletionItem ?( item : CompletionItem , token : CancellationToken ) : ProviderResult < CompletionItem > {
0 commit comments