11import { CompletionItemProvider , TextDocument , Position , CancellationToken , CompletionItem , CompletionItemKind } from "vscode" ;
2- // var resources = require('../../config/snippets/tiat-resources.json');
3- import resources from '../../config/snippets/tiat-resources.json' ;
2+ import resources from '../../config/tips/tiat-resources.json' ;
43import * as _ from "lodash" ;
54
65var topLevelTypes = [ "output" , "provider" , "resource" , "variable" , "data" ] ;
@@ -11,7 +10,7 @@ var topLevelRegexes = topLevelTypes.map(o => {
1110 } ;
1211} ) ;
1312
14- export class TerraformCompletionProvider implements CompletionItemProvider {
13+ export class TerraformTipsProvider implements CompletionItemProvider {
1514 document : TextDocument ;
1615 position : Position ;
1716 token : CancellationToken ;
@@ -31,7 +30,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
3130 }
3231
3332 // Are we trying to type a variable?
34- if ( this . isTypingVariable ( lineTillCurrentPosition ) ) {
33+ if ( this . isTypingTfCode ( lineTillCurrentPosition ) ) {
3534 // These variables should always just have 3 parts, resource type, resource name, exported field
3635 var varString = this . getVariableString ( lineTillCurrentPosition ) ;
3736 var parts = varString . split ( "." ) ;
@@ -74,7 +73,6 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
7473 }
7574
7675 // Are we trying to type a parameter to a resource?
77-
7876 let possibleResources = this . checkTopLevelResource ( lineTillCurrentPosition ) ;
7977 if ( possibleResources . length > 0 ) {
8078 return this . getHintsForStrings ( possibleResources ) ;
@@ -87,8 +85,8 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
8785 if ( parentType && parentType . type === "resource" ) {
8886 let resourceType = this . getResourceTypeFromLine ( line ) ;
8987 let ret = this . getItemsForArgs ( resources [ resourceType ] . args , resourceType ) ;
90- return ret ;
91- }
88+ return ret ;
89+ }
9290 else if ( parentType && parentType . type !== "resource" ) {
9391 // We don't want to accidentally include some other containers stuff
9492 return [ ] ;
@@ -99,7 +97,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
9997 }
10098
10199 getNamesForResourceType ( document : TextDocument , resourceType : string ) : string [ ] {
102- var r = new RegExp ( 'resource "' + resourceType + '" "([a-zA-Z0-9\-_]+)"' ) ;
100+ var r = new RegExp ( 'resource "' + resourceType + '" "([a-zA-Z0-9\-_]+)"' ) ;
103101 var found = [ ] ;
104102 for ( var i = 0 ; i < document . lineCount ; i ++ ) {
105103 var line = document . lineAt ( i ) . text ;
@@ -128,7 +126,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
128126 }
129127
130128 isTopLevelType ( line : string ) : boolean {
131- for ( var i = 0 ; i < topLevelTypes . length ; i ++ ) {
129+ for ( var i = 0 ; i < topLevelTypes . length ; i ++ ) {
132130 var resourceType = topLevelTypes [ i ] ;
133131 if ( resourceType . indexOf ( line ) === 0 ) {
134132 return true ;
@@ -138,7 +136,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
138136 }
139137
140138 getTopLevelType ( line : string ) : CompletionItem [ ] {
141- for ( var i = 0 ; i < topLevelTypes . length ; i ++ ) {
139+ for ( var i = 0 ; i < topLevelTypes . length ; i ++ ) {
142140 var resourceType = topLevelTypes [ i ] ;
143141 if ( resourceType . indexOf ( line ) === 0 ) {
144142 return [ new CompletionItem ( resourceType , CompletionItemKind . Enum ) ] ;
@@ -147,7 +145,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
147145 return [ ] ;
148146 }
149147
150- isTypingVariable ( line : string ) : boolean {
148+ isTypingTfCode ( line : string ) : boolean {
151149 var r = / \$ \{ [ 0 - 9 a - z A - Z _ \. \- ] * $ / ;
152150 return r . test ( line ) ;
153151 }
@@ -183,7 +181,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
183181 } ) ;
184182 }
185183
186- getParentType ( line : string ) : boolean | any {
184+ getParentType ( line : string ) : boolean | any {
187185 for ( var i = 0 ; i < topLevelRegexes . length ; i ++ ) {
188186 let tl = topLevelRegexes [ i ] ;
189187 if ( tl . regex . test ( line ) ) {
0 commit comments