@@ -149,6 +149,64 @@ define(function (require, exports, module) {
149
149
console . debug ( "Hints" , _ . pluck ( hints , "label" ) ) ;
150
150
}
151
151
152
+ var _infered = true ;
153
+
154
+ function getInferHelper ( type ) {
155
+ return function ( element , index , array ) {
156
+ if ( element === type && _infered ) {
157
+ _infered = true ;
158
+ } else {
159
+ _infered = false ;
160
+ }
161
+ } ;
162
+ }
163
+
164
+ function inferArrayType ( typeExpr ) {
165
+ var type = "[...]" ;
166
+ var types = typeExpr . split ( '[' ) [ 1 ] . split ( ']' ) [ 0 ] . split ( ',' ) ;
167
+
168
+ _infered = true ;
169
+
170
+ types . every ( getInferHelper ( 'string' ) ) ;
171
+ if ( _infered ) {
172
+ type = '[Abc]' ;
173
+ } else {
174
+ _infered = true ;
175
+ types . every ( getInferHelper ( 'number' ) ) ;
176
+ if ( _infered ) {
177
+ type = '[123]' ;
178
+ } else {
179
+ _infered = true ;
180
+ types . every ( getInferHelper ( 'Object' ) ) ;
181
+ if ( _infered ) {
182
+ type = '[{ }]' ;
183
+ }
184
+ }
185
+ }
186
+
187
+ return type ;
188
+ }
189
+
190
+ function getRenderType ( type ) {
191
+ var typeString = " " ;
192
+ if ( type ) {
193
+ if ( type . indexOf ( 'Object' ) === 0 ) {
194
+ typeString = '{ }' ;
195
+ } else if ( type . indexOf ( '[' ) === 0 ) {
196
+ typeString = inferArrayType ( type ) ;
197
+ } else if ( type . indexOf ( 'fn' ) === 0 ) {
198
+ typeString = 'fn( )' ;
199
+ } else if ( type . indexOf ( 'string' ) === 0 ) {
200
+ typeString = "Abc" ;
201
+ } else if ( type . indexOf ( 'number' ) === 0 ) {
202
+ typeString = '123' ;
203
+ } else if ( type . indexOf ( 'bool' ) === 0 ) {
204
+ typeString = 'bool' ;
205
+ }
206
+ }
207
+ return typeString ;
208
+ }
209
+
152
210
/*
153
211
* Returns a formatted list of hints with the query substring
154
212
* highlighted.
@@ -165,7 +223,7 @@ define(function (require, exports, module) {
165
223
function formatHints ( hints , query ) {
166
224
return hints . map ( function ( token ) {
167
225
var $hintObj = $ ( "<span>" ) . addClass ( "brackets-js-hints" ) ;
168
-
226
+ $ ( '<span>' + getRenderType ( token . type ) + '</span>' ) . appendTo ( $hintObj ) . addClass ( "brackets-js-hints-type" ) ;
169
227
// level indicates either variable scope or property confidence
170
228
if ( ! type . property && ! token . builtin && token . depth !== undefined ) {
171
229
switch ( token . depth ) {
0 commit comments