|
|
@ -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 ------
|
|
|
|
export class CSSDocumentSymbolAdapter extends DocumentSymbolAdapter<CSSWorker> {}
|
|
|
|
|
|
|
|
|
|
|
|
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 DocumentColorAdapter implements languages.DocumentColorProvider {
|
|
|
|
export class DocumentColorAdapter implements languages.DocumentColorProvider {
|
|
|
|
constructor(private _worker: WorkerAccessor) {}
|
|
|
|
constructor(private _worker: WorkerAccessor) {}
|
|
|
|