|
@@ -18,7 +18,8 @@ import {
|
|
DocumentHighlightAdapter,
|
|
DocumentHighlightAdapter,
|
|
DefinitionAdapter,
|
|
DefinitionAdapter,
|
|
ReferenceAdapter,
|
|
ReferenceAdapter,
|
|
- RenameAdapter
|
|
|
|
|
|
+ RenameAdapter,
|
|
|
|
+ DocumentSymbolAdapter
|
|
} from '../common/lspLanguageFeatures';
|
|
} from '../common/lspLanguageFeatures';
|
|
|
|
|
|
export interface WorkerAccessor {
|
|
export interface WorkerAccessor {
|
|
@@ -47,79 +48,7 @@ export class CSSReferenceAdapter extends ReferenceAdapter<CSSWorker> {}
|
|
|
|
|
|
export class CSSRenameAdapter extends RenameAdapter<CSSWorker> {}
|
|
export class CSSRenameAdapter extends RenameAdapter<CSSWorker> {}
|
|
|
|
|
|
-// --- document symbols ------
|
|
|
|
-
|
|
|
|
-function toSymbolKind(kind: lsTypes.SymbolKind): languages.SymbolKind {
|
|
|
|
- let mKind = languages.SymbolKind;
|
|
|
|
-
|
|
|
|
- switch (kind) {
|
|
|
|
- case lsTypes.SymbolKind.File:
|
|
|
|
- return mKind.Array;
|
|
|
|
- case lsTypes.SymbolKind.Module:
|
|
|
|
- return mKind.Module;
|
|
|
|
- case lsTypes.SymbolKind.Namespace:
|
|
|
|
- return mKind.Namespace;
|
|
|
|
- case lsTypes.SymbolKind.Package:
|
|
|
|
- return mKind.Package;
|
|
|
|
- case lsTypes.SymbolKind.Class:
|
|
|
|
- return mKind.Class;
|
|
|
|
- case lsTypes.SymbolKind.Method:
|
|
|
|
- return mKind.Method;
|
|
|
|
- case lsTypes.SymbolKind.Property:
|
|
|
|
- return mKind.Property;
|
|
|
|
- case lsTypes.SymbolKind.Field:
|
|
|
|
- return mKind.Field;
|
|
|
|
- case lsTypes.SymbolKind.Constructor:
|
|
|
|
- return mKind.Constructor;
|
|
|
|
- case lsTypes.SymbolKind.Enum:
|
|
|
|
- return mKind.Enum;
|
|
|
|
- case lsTypes.SymbolKind.Interface:
|
|
|
|
- return mKind.Interface;
|
|
|
|
- case lsTypes.SymbolKind.Function:
|
|
|
|
- return mKind.Function;
|
|
|
|
- case lsTypes.SymbolKind.Variable:
|
|
|
|
- return mKind.Variable;
|
|
|
|
- case lsTypes.SymbolKind.Constant:
|
|
|
|
- return mKind.Constant;
|
|
|
|
- case lsTypes.SymbolKind.String:
|
|
|
|
- return mKind.String;
|
|
|
|
- case lsTypes.SymbolKind.Number:
|
|
|
|
- return mKind.Number;
|
|
|
|
- case lsTypes.SymbolKind.Boolean:
|
|
|
|
- return mKind.Boolean;
|
|
|
|
- case lsTypes.SymbolKind.Array:
|
|
|
|
- return mKind.Array;
|
|
|
|
- }
|
|
|
|
- return mKind.Function;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-export class DocumentSymbolAdapter implements languages.DocumentSymbolProvider {
|
|
|
|
- constructor(private _worker: WorkerAccessor) {}
|
|
|
|
-
|
|
|
|
- public provideDocumentSymbols(
|
|
|
|
- model: editor.IReadOnlyModel,
|
|
|
|
- token: CancellationToken
|
|
|
|
- ): Promise<languages.DocumentSymbol[] | undefined> {
|
|
|
|
- const resource = model.uri;
|
|
|
|
-
|
|
|
|
- return this._worker(resource)
|
|
|
|
- .then((worker) => worker.findDocumentSymbols(resource.toString()))
|
|
|
|
- .then((items) => {
|
|
|
|
- if (!items) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- return items.map((item) => ({
|
|
|
|
- name: item.name,
|
|
|
|
- detail: '',
|
|
|
|
- containerName: item.containerName,
|
|
|
|
- kind: toSymbolKind(item.kind),
|
|
|
|
- range: toRange(item.location.range),
|
|
|
|
- selectionRange: toRange(item.location.range),
|
|
|
|
- tags: []
|
|
|
|
- }));
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
|
|
+export class CSSDocumentSymbolAdapter extends DocumentSymbolAdapter<CSSWorker> {}
|
|
|
|
|
|
export class DocumentColorAdapter implements languages.DocumentColorProvider {
|
|
export class DocumentColorAdapter implements languages.DocumentColorProvider {
|
|
constructor(private _worker: WorkerAccessor) {}
|
|
constructor(private _worker: WorkerAccessor) {}
|