@@ -68,43 +68,6 @@ export function fromPosition(position: types.Position):IPosition {
6868 return { lineNumber : position . line + 1 , column : position . character + 1 } ;
6969}
7070
71- export function fromSymbolKind ( kind : number | types . SymbolKind ) : string {
72- switch ( kind ) {
73- case types . SymbolKind . Method :
74- return 'method' ;
75- case types . SymbolKind . Function :
76- return 'function' ;
77- case types . SymbolKind . Constructor :
78- return 'constructor' ;
79- case types . SymbolKind . Variable :
80- return 'variable' ;
81- case types . SymbolKind . Class :
82- return 'class' ;
83- case types . SymbolKind . Interface :
84- return 'interface' ;
85- case types . SymbolKind . Module :
86- case types . SymbolKind . Namespace :
87- case types . SymbolKind . Package :
88- return 'module' ;
89- case types . SymbolKind . Property :
90- return 'property' ;
91- case types . SymbolKind . Enum :
92- return 'enum' ;
93- case types . SymbolKind . String :
94- return 'string' ;
95- case types . SymbolKind . File :
96- return 'file' ;
97- case types . SymbolKind . Array :
98- return 'array' ;
99- case types . SymbolKind . Number :
100- return 'number' ;
101- case types . SymbolKind . Boolean :
102- return 'boolean' ;
103- }
104-
105- return 'property' ;
106- }
107-
10871export function fromDiagnosticSeverity ( value : number ) : Severity {
10972 switch ( value ) {
11073 case types . DiagnosticSeverity . Error :
@@ -211,6 +174,103 @@ export function fromTextEdit(edit: vscode.TextEdit) {
211174 }
212175}
213176
177+ export namespace SymbolKind {
178+
179+ export function from ( kind : number | types . SymbolKind ) : string {
180+ switch ( kind ) {
181+ case types . SymbolKind . Method :
182+ return 'method' ;
183+ case types . SymbolKind . Function :
184+ return 'function' ;
185+ case types . SymbolKind . Constructor :
186+ return 'constructor' ;
187+ case types . SymbolKind . Variable :
188+ return 'variable' ;
189+ case types . SymbolKind . Class :
190+ return 'class' ;
191+ case types . SymbolKind . Interface :
192+ return 'interface' ;
193+ case types . SymbolKind . Module :
194+ case types . SymbolKind . Namespace :
195+ case types . SymbolKind . Package :
196+ return 'module' ;
197+ case types . SymbolKind . Property :
198+ return 'property' ;
199+ case types . SymbolKind . Enum :
200+ return 'enum' ;
201+ case types . SymbolKind . String :
202+ return 'string' ;
203+ case types . SymbolKind . File :
204+ return 'file' ;
205+ case types . SymbolKind . Array :
206+ return 'array' ;
207+ case types . SymbolKind . Number :
208+ return 'number' ;
209+ case types . SymbolKind . Boolean :
210+ return 'boolean' ;
211+ }
212+ return 'property' ;
213+ }
214+
215+ export function to ( type : string ) : types . SymbolKind {
216+ switch ( type ) {
217+ case 'method' :
218+ return types . SymbolKind . Method ;
219+ case 'function' :
220+ return types . SymbolKind . Function ;
221+ case 'constructor' :
222+ return types . SymbolKind . Constructor ;
223+ case 'variable' :
224+ return types . SymbolKind . Variable ;
225+ case 'class' :
226+ return types . SymbolKind . Class ;
227+ case 'interface' :
228+ return types . SymbolKind . Interface ;
229+ case 'module' :
230+ // case types.SymbolKind.Namespace:
231+ // case types.SymbolKind.Package:
232+ return types . SymbolKind . Module ;
233+ case 'property' :
234+ return types . SymbolKind . Property ;
235+ case 'enum' :
236+ return types . SymbolKind . Enum ;
237+ case 'string' :
238+ return types . SymbolKind . String ;
239+ case 'file' :
240+ return types . SymbolKind . File ;
241+ case 'array' :
242+ return types . SymbolKind . Array ;
243+ case 'number' :
244+ return types . SymbolKind . Number ;
245+ case 'boolean' :
246+ return types . SymbolKind . Boolean ;
247+ }
248+ return types . SymbolKind . Property
249+ }
250+ }
251+
252+ export namespace SymbolInformation {
253+
254+ export function fromOutlineEntry ( entry : modes . IOutlineEntry ) : types . SymbolInformation {
255+ return new types . SymbolInformation ( entry . label ,
256+ SymbolKind . to ( entry . type ) ,
257+ toRange ( entry . range ) ,
258+ undefined ,
259+ entry . containerLabel )
260+ }
261+
262+ export function toOutlineEntry ( symbol : vscode . SymbolInformation ) : modes . IOutlineEntry {
263+ return < modes . IOutlineEntry > {
264+ type : SymbolKind . from ( symbol . kind ) ,
265+ range : fromRange ( symbol . location . range ) ,
266+ containerLabel : symbol . containerName ,
267+ label : symbol . name ,
268+ icon : undefined ,
269+ } ;
270+ }
271+
272+ }
273+
214274export function fromSymbolInformation ( info : vscode . SymbolInformation ) : ITypeBearing {
215275 return < ITypeBearing > {
216276 name : info . name ,
0 commit comments