1
1
import { 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' ;
4
3
import * as _ from "lodash" ;
5
4
6
5
var topLevelTypes = [ "output" , "provider" , "resource" , "variable" , "data" ] ;
@@ -11,7 +10,7 @@ var topLevelRegexes = topLevelTypes.map(o => {
11
10
} ;
12
11
} ) ;
13
12
14
- export class TerraformCompletionProvider implements CompletionItemProvider {
13
+ export class TerraformTipsProvider implements CompletionItemProvider {
15
14
document : TextDocument ;
16
15
position : Position ;
17
16
token : CancellationToken ;
@@ -31,7 +30,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
31
30
}
32
31
33
32
// Are we trying to type a variable?
34
- if ( this . isTypingVariable ( lineTillCurrentPosition ) ) {
33
+ if ( this . isTypingTfCode ( lineTillCurrentPosition ) ) {
35
34
// These variables should always just have 3 parts, resource type, resource name, exported field
36
35
var varString = this . getVariableString ( lineTillCurrentPosition ) ;
37
36
var parts = varString . split ( "." ) ;
@@ -74,7 +73,6 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
74
73
}
75
74
76
75
// Are we trying to type a parameter to a resource?
77
-
78
76
let possibleResources = this . checkTopLevelResource ( lineTillCurrentPosition ) ;
79
77
if ( possibleResources . length > 0 ) {
80
78
return this . getHintsForStrings ( possibleResources ) ;
@@ -87,8 +85,8 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
87
85
if ( parentType && parentType . type === "resource" ) {
88
86
let resourceType = this . getResourceTypeFromLine ( line ) ;
89
87
let ret = this . getItemsForArgs ( resources [ resourceType ] . args , resourceType ) ;
90
- return ret ;
91
- }
88
+ return ret ;
89
+ }
92
90
else if ( parentType && parentType . type !== "resource" ) {
93
91
// We don't want to accidentally include some other containers stuff
94
92
return [ ] ;
@@ -99,7 +97,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
99
97
}
100
98
101
99
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\-_]+)"' ) ;
103
101
var found = [ ] ;
104
102
for ( var i = 0 ; i < document . lineCount ; i ++ ) {
105
103
var line = document . lineAt ( i ) . text ;
@@ -128,7 +126,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
128
126
}
129
127
130
128
isTopLevelType ( line : string ) : boolean {
131
- for ( var i = 0 ; i < topLevelTypes . length ; i ++ ) {
129
+ for ( var i = 0 ; i < topLevelTypes . length ; i ++ ) {
132
130
var resourceType = topLevelTypes [ i ] ;
133
131
if ( resourceType . indexOf ( line ) === 0 ) {
134
132
return true ;
@@ -138,7 +136,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
138
136
}
139
137
140
138
getTopLevelType ( line : string ) : CompletionItem [ ] {
141
- for ( var i = 0 ; i < topLevelTypes . length ; i ++ ) {
139
+ for ( var i = 0 ; i < topLevelTypes . length ; i ++ ) {
142
140
var resourceType = topLevelTypes [ i ] ;
143
141
if ( resourceType . indexOf ( line ) === 0 ) {
144
142
return [ new CompletionItem ( resourceType , CompletionItemKind . Enum ) ] ;
@@ -147,7 +145,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
147
145
return [ ] ;
148
146
}
149
147
150
- isTypingVariable ( line : string ) : boolean {
148
+ isTypingTfCode ( line : string ) : boolean {
151
149
var r = / \$ \{ [ 0 - 9 a - z A - Z _ \. \- ] * $ / ;
152
150
return r . test ( line ) ;
153
151
}
@@ -183,7 +181,7 @@ export class TerraformCompletionProvider implements CompletionItemProvider {
183
181
} ) ;
184
182
}
185
183
186
- getParentType ( line : string ) : boolean | any {
184
+ getParentType ( line : string ) : boolean | any {
187
185
for ( var i = 0 ; i < topLevelRegexes . length ; i ++ ) {
188
186
let tl = topLevelRegexes [ i ] ;
189
187
if ( tl . regex . test ( line ) ) {
0 commit comments