You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
monaco-editor/website/playground/new-samples/extending-language-services/symbols-provider-example/sample.js

481 lines
7.9 KiB
JavaScript

monaco.languages.registerDocumentSymbolProvider('json', {
provideDocumentSymbols: function (model, token) {
return [
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'File',
kind: 0,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Module',
kind: 1,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Namespace',
kind: 2,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Package',
kind: 3,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Class',
kind: 4,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Method',
kind: 5,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Property',
kind: 6,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Field',
kind: 7,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Constructor',
kind: 8,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Enum',
kind: 9,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Interface',
kind: 10,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Function',
kind: 11,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Variable',
kind: 12,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Constant',
kind: 13,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'String',
kind: 14,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Number',
kind: 15,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Boolean',
kind: 16,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Array',
kind: 17,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Object',
kind: 18,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Key',
kind: 19,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Null',
kind: 20,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'EnumMember',
kind: 21,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Struct',
kind: 22,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Event',
kind: 23,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'Operator',
kind: 24,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
},
{
range: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
},
name: 'TypeParameter',
kind: 25,
detail: '',
tags: [],
selectionRange: {
startLineNumber: 1,
startColumn: 1,
endLineNumber: 2,
endColumn: 1
}
}
];
}
});
// press Ctrl+Shift+O to show the symbols in the editor
monaco.editor.create(document.getElementById('container'), {
value: '{\n\t"dependencies": {\n\t\t\n\t}\n}\n',
language: 'json'
});