text: 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'
  });
  