newtests/lsp/documentSymbol/test.js (3,543 lines of code) (raw):
/**
* @flow
* @format
*/
import type {Suite} from 'flow-dev-tools/src/test/Suite';
const {suite, test} = require('flow-dev-tools/src/test/Tester');
module.exports = (suite(
({
lspStartAndConnect,
lspInitializeParams,
lspRequestAndWaitUntilResponse,
addFile,
}) => [
test('textDocument/documentSymbol with hierarchical support', [
addFile('stuff.js'),
lspStartAndConnect(6000, {
...lspInitializeParams,
capabilities: {
...lspInitializeParams.capabilities,
textDocument: {
...lspInitializeParams.capabilities.textDocument,
documentSymbol: {
hierarchicalDocumentSymbolSupport: true,
},
},
},
}),
lspRequestAndWaitUntilResponse('textDocument/documentSymbol', {
textDocument: {uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js'},
}).verifyAllLSPMessagesInStep(
[
{
method: 'textDocument/documentSymbol',
result: [
{
name: 'x',
kind: 13,
range: {
start: {
line: 2,
character: 6,
},
end: {
line: 7,
character: 1,
},
},
selectionRange: {
start: {
line: 2,
character: 6,
},
end: {
line: 2,
character: 7,
},
},
children: [
{
name: 'obj',
kind: 7,
range: {
start: {
line: 6,
character: 2,
},
end: {
line: 6,
character: 24,
},
},
selectionRange: {
start: {
line: 6,
character: 2,
},
end: {
line: 6,
character: 5,
},
},
children: [
{
name: 'nested',
kind: 7,
range: {
start: {
line: 6,
character: 9,
},
end: {
line: 6,
character: 22,
},
},
selectionRange: {
start: {
line: 6,
character: 9,
},
end: {
line: 6,
character: 15,
},
},
},
],
},
{
name: 'bar',
kind: 6,
range: {
start: {
line: 5,
character: 2,
},
end: {
line: 5,
character: 20,
},
},
selectionRange: {
start: {
line: 5,
character: 2,
},
end: {
line: 5,
character: 5,
},
},
},
{
name: 'foo',
kind: 7,
range: {
start: {
line: 4,
character: 2,
},
end: {
line: 4,
character: 10,
},
},
selectionRange: {
start: {
line: 4,
character: 2,
},
end: {
line: 4,
character: 5,
},
},
},
{
name: 'C',
kind: 5,
range: {
start: {
line: 3,
character: 2,
},
end: {
line: 3,
character: 13,
},
},
selectionRange: {
start: {
line: 3,
character: 2,
},
end: {
line: 3,
character: 3,
},
},
},
],
},
{
name: 'Y',
kind: 5,
range: {
start: {
line: 9,
character: 0,
},
end: {
line: 19,
character: 1,
},
},
selectionRange: {
start: {
line: 9,
character: 6,
},
end: {
line: 9,
character: 7,
},
},
children: [
{
name: 'Z',
kind: 5,
range: {
start: {
line: 16,
character: 2,
},
end: {
line: 18,
character: 3,
},
},
selectionRange: {
start: {
line: 16,
character: 2,
},
end: {
line: 16,
character: 3,
},
},
children: [
{
name: 'zmeth',
kind: 6,
range: {
start: {
line: 17,
character: 4,
},
end: {
line: 17,
character: 14,
},
},
selectionRange: {
start: {
line: 17,
character: 4,
},
end: {
line: 17,
character: 9,
},
},
},
],
},
{
name: '(set) abc',
kind: 7,
range: {
start: {
line: 15,
character: 2,
},
end: {
line: 15,
character: 23,
},
},
selectionRange: {
start: {
line: 15,
character: 6,
},
end: {
line: 15,
character: 9,
},
},
},
{
name: '(get) abc',
kind: 7,
range: {
start: {
line: 14,
character: 2,
},
end: {
line: 14,
character: 14,
},
},
selectionRange: {
start: {
line: 14,
character: 6,
},
end: {
line: 14,
character: 9,
},
},
},
{
name: '#baz',
kind: 7,
range: {
start: {
line: 13,
character: 2,
},
end: {
line: 13,
character: 15,
},
},
selectionRange: {
start: {
line: 13,
character: 2,
},
end: {
line: 13,
character: 6,
},
},
},
{
name: 'bar',
kind: 7,
range: {
start: {
line: 12,
character: 2,
},
end: {
line: 12,
character: 12,
},
},
selectionRange: {
start: {
line: 12,
character: 2,
},
end: {
line: 12,
character: 5,
},
},
},
{
name: 'foo',
kind: 6,
range: {
start: {
line: 11,
character: 2,
},
end: {
line: 11,
character: 10,
},
},
selectionRange: {
start: {
line: 11,
character: 2,
},
end: {
line: 11,
character: 5,
},
},
},
{
name: '#foo',
kind: 6,
range: {
start: {
line: 10,
character: 2,
},
end: {
line: 10,
character: 11,
},
},
selectionRange: {
start: {
line: 10,
character: 2,
},
end: {
line: 10,
character: 6,
},
},
},
],
},
{
name: 'z',
kind: 5,
range: {
start: {
line: 21,
character: 6,
},
end: {
line: 23,
character: 2,
},
},
selectionRange: {
start: {
line: 21,
character: 6,
},
end: {
line: 21,
character: 7,
},
},
children: [
{
name: 'foo',
kind: 6,
range: {
start: {
line: 22,
character: 2,
},
end: {
line: 22,
character: 10,
},
},
selectionRange: {
start: {
line: 22,
character: 2,
},
end: {
line: 22,
character: 5,
},
},
},
],
},
{
name: 'Z1',
kind: 5,
range: {
start: {
line: 25,
character: 6,
},
end: {
line: 27,
character: 1,
},
},
selectionRange: {
start: {
line: 25,
character: 6,
},
end: {
line: 25,
character: 8,
},
},
children: [
{
name: 'foo',
kind: 6,
range: {
start: {
line: 26,
character: 2,
},
end: {
line: 26,
character: 10,
},
},
selectionRange: {
start: {
line: 26,
character: 2,
},
end: {
line: 26,
character: 5,
},
},
},
],
},
{
name: 'Z2',
kind: 5,
range: {
start: {
line: 29,
character: 6,
},
end: {
line: 31,
character: 2,
},
},
selectionRange: {
start: {
line: 29,
character: 6,
},
end: {
line: 29,
character: 8,
},
},
children: [
{
name: 'foo',
kind: 6,
range: {
start: {
line: 30,
character: 2,
},
end: {
line: 30,
character: 10,
},
},
selectionRange: {
start: {
line: 30,
character: 2,
},
end: {
line: 30,
character: 5,
},
},
},
],
},
{
name: 'Z3',
kind: 5,
range: {
start: {
line: 33,
character: 6,
},
end: {
line: 35,
character: 1,
},
},
selectionRange: {
start: {
line: 33,
character: 6,
},
end: {
line: 33,
character: 8,
},
},
children: [
{
name: 'foo',
kind: 6,
range: {
start: {
line: 34,
character: 2,
},
end: {
line: 34,
character: 10,
},
},
selectionRange: {
start: {
line: 34,
character: 2,
},
end: {
line: 34,
character: 5,
},
},
},
],
},
{
name: 'z4',
kind: 13,
range: {
start: {
line: 38,
character: 6,
},
end: {
line: 40,
character: 1,
},
},
selectionRange: {
start: {
line: 38,
character: 6,
},
end: {
line: 38,
character: 8,
},
},
children: [
{
name: 'Z4',
kind: 5,
range: {
start: {
line: 38,
character: 11,
},
end: {
line: 40,
character: 1,
},
},
selectionRange: {
start: {
line: 38,
character: 17,
},
end: {
line: 38,
character: 19,
},
},
children: [
{
name: 'foo',
kind: 6,
range: {
start: {
line: 39,
character: 2,
},
end: {
line: 39,
character: 10,
},
},
selectionRange: {
start: {
line: 39,
character: 2,
},
end: {
line: 39,
character: 5,
},
},
},
],
},
],
},
{
name: 'Z5',
kind: 5,
range: {
start: {
line: 42,
character: 0,
},
end: {
line: 44,
character: 1,
},
},
selectionRange: {
start: {
line: 42,
character: 14,
},
end: {
line: 42,
character: 16,
},
},
children: [
{
name: 'foo',
kind: 6,
range: {
start: {
line: 43,
character: 2,
},
end: {
line: 43,
character: 13,
},
},
selectionRange: {
start: {
line: 43,
character: 2,
},
end: {
line: 43,
character: 5,
},
},
},
],
},
{
name: 'Z6',
kind: 5,
range: {
start: {
line: 46,
character: 15,
},
end: {
line: 48,
character: 1,
},
},
selectionRange: {
start: {
line: 46,
character: 21,
},
end: {
line: 46,
character: 23,
},
},
children: [
{
name: 'foo',
kind: 6,
range: {
start: {
line: 47,
character: 2,
},
end: {
line: 47,
character: 13,
},
},
selectionRange: {
start: {
line: 47,
character: 2,
},
end: {
line: 47,
character: 5,
},
},
},
],
},
{
name: 'Z7',
kind: 5,
range: {
start: {
line: 50,
character: 7,
},
end: {
line: 52,
character: 1,
},
},
selectionRange: {
start: {
line: 50,
character: 13,
},
end: {
line: 50,
character: 15,
},
},
children: [
{
name: 'foo',
kind: 6,
range: {
start: {
line: 51,
character: 2,
},
end: {
line: 51,
character: 10,
},
},
selectionRange: {
start: {
line: 51,
character: 2,
},
end: {
line: 51,
character: 5,
},
},
},
],
},
{
name: 'f1',
kind: 12,
range: {
start: {
line: 54,
character: 0,
},
end: {
line: 56,
character: 1,
},
},
selectionRange: {
start: {
line: 54,
character: 9,
},
end: {
line: 54,
character: 11,
},
},
children: [
{
name: 'f1_x',
kind: 13,
range: {
start: {
line: 55,
character: 8,
},
end: {
line: 55,
character: 18,
},
},
selectionRange: {
start: {
line: 55,
character: 8,
},
end: {
line: 55,
character: 12,
},
},
},
],
},
{
name: 'f2',
kind: 6,
range: {
start: {
line: 58,
character: 6,
},
end: {
line: 60,
character: 1,
},
},
selectionRange: {
start: {
line: 58,
character: 6,
},
end: {
line: 58,
character: 8,
},
},
children: [
{
name: 'f2_x',
kind: 13,
range: {
start: {
line: 59,
character: 8,
},
end: {
line: 59,
character: 18,
},
},
selectionRange: {
start: {
line: 59,
character: 8,
},
end: {
line: 59,
character: 12,
},
},
},
],
},
{
name: 'f3',
kind: 13,
range: {
start: {
line: 62,
character: 6,
},
end: {
line: 64,
character: 1,
},
},
selectionRange: {
start: {
line: 62,
character: 6,
},
end: {
line: 62,
character: 8,
},
},
children: [
{
name: 'f3_expr',
kind: 12,
range: {
start: {
line: 62,
character: 11,
},
end: {
line: 64,
character: 1,
},
},
selectionRange: {
start: {
line: 62,
character: 20,
},
end: {
line: 62,
character: 27,
},
},
children: [
{
name: 'f3_x',
kind: 13,
range: {
start: {
line: 63,
character: 8,
},
end: {
line: 63,
character: 18,
},
},
selectionRange: {
start: {
line: 63,
character: 8,
},
end: {
line: 63,
character: 12,
},
},
},
],
},
],
},
{
name: 'f4',
kind: 12,
range: {
start: {
line: 66,
character: 0,
},
end: {
line: 66,
character: 28,
},
},
selectionRange: {
start: {
line: 66,
character: 17,
},
end: {
line: 66,
character: 19,
},
},
},
{
name: 'f5',
kind: 12,
range: {
start: {
line: 68,
character: 15,
},
end: {
line: 68,
character: 35,
},
},
selectionRange: {
start: {
line: 68,
character: 24,
},
end: {
line: 68,
character: 26,
},
},
},
{
name: 'f6',
kind: 12,
range: {
start: {
line: 70,
character: 7,
},
end: {
line: 72,
character: 1,
},
},
selectionRange: {
start: {
line: 70,
character: 16,
},
end: {
line: 70,
character: 18,
},
},
children: [
{
name: 'f6_x',
kind: 13,
range: {
start: {
line: 71,
character: 8,
},
end: {
line: 71,
character: 18,
},
},
selectionRange: {
start: {
line: 71,
character: 8,
},
end: {
line: 71,
character: 12,
},
},
},
],
},
{
name: '<function>',
kind: 12,
range: {
start: {
line: 74,
character: 1,
},
end: {
line: 76,
character: 1,
},
},
selectionRange: {
start: {
line: 74,
character: 1,
},
end: {
line: 76,
character: 1,
},
},
children: [
{
name: 'iife_x',
kind: 13,
range: {
start: {
line: 75,
character: 8,
},
end: {
line: 75,
character: 20,
},
},
selectionRange: {
start: {
line: 75,
character: 8,
},
end: {
line: 75,
character: 14,
},
},
},
],
},
{
name: 'T1',
kind: 13,
range: {
start: {
line: 78,
character: 0,
},
end: {
line: 83,
character: 1,
},
},
selectionRange: {
start: {
line: 78,
character: 5,
},
end: {
line: 78,
character: 7,
},
},
children: [
{
name: '[[call]]',
kind: 7,
range: {
start: {
line: 82,
character: 2,
},
end: {
line: 82,
character: 16,
},
},
selectionRange: {
start: {
line: 82,
character: 4,
},
end: {
line: 82,
character: 8,
},
},
},
{
name: '[key]',
kind: 7,
range: {
start: {
line: 81,
character: 2,
},
end: {
line: 81,
character: 23,
},
},
selectionRange: {
start: {
line: 81,
character: 3,
},
end: {
line: 81,
character: 6,
},
},
},
{
name: 'bar',
kind: 7,
range: {
start: {
line: 80,
character: 2,
},
end: {
line: 80,
character: 22,
},
},
selectionRange: {
start: {
line: 80,
character: 2,
},
end: {
line: 80,
character: 5,
},
},
children: [
{
name: 'baz',
kind: 7,
range: {
start: {
line: 80,
character: 9,
},
end: {
line: 80,
character: 20,
},
},
selectionRange: {
start: {
line: 80,
character: 9,
},
end: {
line: 80,
character: 12,
},
},
},
],
},
{
name: 'foo',
kind: 6,
range: {
start: {
line: 79,
character: 2,
},
end: {
line: 79,
character: 13,
},
},
selectionRange: {
start: {
line: 79,
character: 2,
},
end: {
line: 79,
character: 5,
},
},
},
],
},
{
name: 'I1',
kind: 11,
range: {
start: {
line: 85,
character: 0,
},
end: {
line: 89,
character: 1,
},
},
selectionRange: {
start: {
line: 85,
character: 10,
},
end: {
line: 85,
character: 12,
},
},
children: [
{
name: '[key]',
kind: 7,
range: {
start: {
line: 88,
character: 2,
},
end: {
line: 88,
character: 23,
},
},
selectionRange: {
start: {
line: 88,
character: 3,
},
end: {
line: 88,
character: 6,
},
},
},
{
name: 'bar',
kind: 7,
range: {
start: {
line: 87,
character: 2,
},
end: {
line: 87,
character: 22,
},
},
selectionRange: {
start: {
line: 87,
character: 2,
},
end: {
line: 87,
character: 5,
},
},
children: [
{
name: 'baz',
kind: 7,
range: {
start: {
line: 87,
character: 9,
},
end: {
line: 87,
character: 20,
},
},
selectionRange: {
start: {
line: 87,
character: 9,
},
end: {
line: 87,
character: 12,
},
},
},
],
},
{
name: 'foo',
kind: 6,
range: {
start: {
line: 86,
character: 2,
},
end: {
line: 86,
character: 13,
},
},
selectionRange: {
start: {
line: 86,
character: 2,
},
end: {
line: 86,
character: 5,
},
},
},
],
},
{
name: 'I2',
kind: 11,
range: {
start: {
line: 91,
character: 0,
},
end: {
line: 93,
character: 1,
},
},
selectionRange: {
start: {
line: 91,
character: 18,
},
end: {
line: 91,
character: 20,
},
},
children: [
{
name: 'foo',
kind: 6,
range: {
start: {
line: 92,
character: 2,
},
end: {
line: 92,
character: 13,
},
},
selectionRange: {
start: {
line: 92,
character: 2,
},
end: {
line: 92,
character: 5,
},
},
},
],
},
{
name: 'I3',
kind: 13,
range: {
start: {
line: 95,
character: 0,
},
end: {
line: 97,
character: 1,
},
},
selectionRange: {
start: {
line: 95,
character: 5,
},
end: {
line: 95,
character: 7,
},
},
children: [
{
name: 'foo',
kind: 6,
range: {
start: {
line: 96,
character: 2,
},
end: {
line: 96,
character: 13,
},
},
selectionRange: {
start: {
line: 96,
character: 2,
},
end: {
line: 96,
character: 5,
},
},
},
],
},
{
name: 'I4',
kind: 13,
range: {
start: {
line: 99,
character: 0,
},
end: {
line: 101,
character: 1,
},
},
selectionRange: {
start: {
line: 99,
character: 12,
},
end: {
line: 99,
character: 14,
},
},
children: [
{
name: 'foo',
kind: 7,
range: {
start: {
line: 100,
character: 2,
},
end: {
line: 100,
character: 13,
},
},
selectionRange: {
start: {
line: 100,
character: 2,
},
end: {
line: 100,
character: 5,
},
},
},
],
},
{
name: 'I5',
kind: 13,
range: {
start: {
line: 103,
character: 0,
},
end: {
line: 105,
character: 1,
},
},
selectionRange: {
start: {
line: 103,
character: 20,
},
end: {
line: 103,
character: 22,
},
},
children: [
{
name: 'foo',
kind: 7,
range: {
start: {
line: 104,
character: 2,
},
end: {
line: 104,
character: 13,
},
},
selectionRange: {
start: {
line: 104,
character: 2,
},
end: {
line: 104,
character: 5,
},
},
},
],
},
{
name: 'decl1',
kind: 13,
range: {
start: {
line: 107,
character: 0,
},
end: {
line: 107,
character: 35,
},
},
selectionRange: {
start: {
line: 107,
character: 12,
},
end: {
line: 107,
character: 17,
},
},
children: [
{
name: 'foo',
kind: 7,
range: {
start: {
line: 107,
character: 21,
},
end: {
line: 107,
character: 32,
},
},
selectionRange: {
start: {
line: 107,
character: 21,
},
end: {
line: 107,
character: 24,
},
},
},
],
},
{
name: 'decl2',
kind: 13,
range: {
start: {
line: 109,
character: 15,
},
end: {
line: 109,
character: 42,
},
},
selectionRange: {
start: {
line: 109,
character: 19,
},
end: {
line: 109,
character: 24,
},
},
children: [
{
name: 'foo',
kind: 7,
range: {
start: {
line: 109,
character: 28,
},
end: {
line: 109,
character: 39,
},
},
selectionRange: {
start: {
line: 109,
character: 28,
},
end: {
line: 109,
character: 31,
},
},
},
],
},
{
name: 'foo',
kind: 7,
range: {
start: {
line: 111,
character: 25,
},
end: {
line: 111,
character: 36,
},
},
selectionRange: {
start: {
line: 111,
character: 25,
},
end: {
line: 111,
character: 28,
},
},
},
{
name: 'default',
kind: 13,
range: {
start: {
line: 113,
character: 0,
},
end: {
line: 115,
character: 2,
},
},
selectionRange: {
start: {
line: 113,
character: 7,
},
end: {
line: 113,
character: 14,
},
},
children: [
{
name: 'foo',
kind: 7,
range: {
start: {
line: 114,
character: 2,
},
end: {
line: 114,
character: 10,
},
},
selectionRange: {
start: {
line: 114,
character: 2,
},
end: {
line: 114,
character: 5,
},
},
},
],
},
{
name: 'M1',
kind: 2,
range: {
start: {
line: 117,
character: 0,
},
end: {
line: 119,
character: 1,
},
},
selectionRange: {
start: {
line: 117,
character: 15,
},
end: {
line: 117,
character: 17,
},
},
children: [
{
name: 'C',
kind: 5,
range: {
start: {
line: 118,
character: 2,
},
end: {
line: 118,
character: 20,
},
},
selectionRange: {
start: {
line: 118,
character: 16,
},
end: {
line: 118,
character: 17,
},
},
},
],
},
{
name: '"M2"',
kind: 2,
range: {
start: {
line: 121,
character: 0,
},
end: {
line: 123,
character: 1,
},
},
selectionRange: {
start: {
line: 121,
character: 15,
},
end: {
line: 121,
character: 19,
},
},
children: [
{
name: 'C',
kind: 5,
range: {
start: {
line: 122,
character: 2,
},
end: {
line: 122,
character: 20,
},
},
selectionRange: {
start: {
line: 122,
character: 16,
},
end: {
line: 122,
character: 17,
},
},
},
],
},
{
name: 'E1',
kind: 10,
range: {
start: {
line: 125,
character: 0,
},
end: {
line: 127,
character: 1,
},
},
selectionRange: {
start: {
line: 125,
character: 5,
},
end: {
line: 125,
character: 7,
},
},
children: [
{
name: 'X',
kind: 22,
range: {
start: {
line: 126,
character: 2,
},
end: {
line: 126,
character: 3,
},
},
selectionRange: {
start: {
line: 126,
character: 2,
},
end: {
line: 126,
character: 3,
},
},
},
],
},
{
name: 'loops',
kind: 12,
range: {
start: {
line: 129,
character: 0,
},
end: {
line: 133,
character: 1,
},
},
selectionRange: {
start: {
line: 129,
character: 9,
},
end: {
line: 129,
character: 14,
},
},
children: [
{
name: 'k',
kind: 13,
range: {
start: {
line: 132,
character: 11,
},
end: {
line: 132,
character: 12,
},
},
selectionRange: {
start: {
line: 132,
character: 11,
},
end: {
line: 132,
character: 12,
},
},
},
{
name: 'x',
kind: 7,
range: {
start: {
line: 131,
character: 18,
},
end: {
line: 131,
character: 24,
},
},
selectionRange: {
start: {
line: 131,
character: 18,
},
end: {
line: 131,
character: 19,
},
},
},
{
name: 'j',
kind: 13,
range: {
start: {
line: 131,
character: 11,
},
end: {
line: 131,
character: 12,
},
},
selectionRange: {
start: {
line: 131,
character: 11,
},
end: {
line: 131,
character: 12,
},
},
},
{
name: 'i',
kind: 13,
range: {
start: {
line: 130,
character: 11,
},
end: {
line: 130,
character: 16,
},
},
selectionRange: {
start: {
line: 130,
character: 11,
},
end: {
line: 130,
character: 12,
},
},
},
],
},
],
},
],
[
'textDocument/publishDiagnostics',
'window/showStatus',
'$/cancelRequest',
],
),
]),
test('textDocument/documentSymbol without hierarchical support', [
addFile('stuff.js'),
lspStartAndConnect(),
lspRequestAndWaitUntilResponse('textDocument/documentSymbol', {
textDocument: {uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js'},
}).verifyAllLSPMessagesInStep(
[
{
method: 'textDocument/documentSymbol',
result: [
{
name: 'x',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 2,
character: 6,
},
end: {
line: 7,
character: 1,
},
},
},
},
{
name: 'obj',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 6,
character: 2,
},
end: {
line: 6,
character: 24,
},
},
},
containerName: 'x',
},
{
name: 'nested',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 6,
character: 9,
},
end: {
line: 6,
character: 22,
},
},
},
containerName: 'obj',
},
{
name: 'bar',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 5,
character: 2,
},
end: {
line: 5,
character: 20,
},
},
},
containerName: 'x',
},
{
name: 'foo',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 4,
character: 2,
},
end: {
line: 4,
character: 10,
},
},
},
containerName: 'x',
},
{
name: 'C',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 3,
character: 2,
},
end: {
line: 3,
character: 13,
},
},
},
containerName: 'x',
},
{
name: 'Y',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 9,
character: 0,
},
end: {
line: 19,
character: 1,
},
},
},
},
{
name: 'Z',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 16,
character: 2,
},
end: {
line: 18,
character: 3,
},
},
},
containerName: 'Y',
},
{
name: 'zmeth',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 17,
character: 4,
},
end: {
line: 17,
character: 14,
},
},
},
containerName: 'Z',
},
{
name: '(set) abc',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 15,
character: 2,
},
end: {
line: 15,
character: 23,
},
},
},
containerName: 'Y',
},
{
name: '(get) abc',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 14,
character: 2,
},
end: {
line: 14,
character: 14,
},
},
},
containerName: 'Y',
},
{
name: '#baz',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 13,
character: 2,
},
end: {
line: 13,
character: 15,
},
},
},
containerName: 'Y',
},
{
name: 'bar',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 12,
character: 2,
},
end: {
line: 12,
character: 12,
},
},
},
containerName: 'Y',
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 11,
character: 2,
},
end: {
line: 11,
character: 10,
},
},
},
containerName: 'Y',
},
{
name: '#foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 10,
character: 2,
},
end: {
line: 10,
character: 11,
},
},
},
containerName: 'Y',
},
{
name: 'z',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 21,
character: 6,
},
end: {
line: 23,
character: 2,
},
},
},
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 22,
character: 2,
},
end: {
line: 22,
character: 10,
},
},
},
containerName: 'z',
},
{
name: 'Z1',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 25,
character: 6,
},
end: {
line: 27,
character: 1,
},
},
},
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 26,
character: 2,
},
end: {
line: 26,
character: 10,
},
},
},
containerName: 'Z1',
},
{
name: 'Z2',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 29,
character: 6,
},
end: {
line: 31,
character: 2,
},
},
},
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 30,
character: 2,
},
end: {
line: 30,
character: 10,
},
},
},
containerName: 'Z2',
},
{
name: 'Z3',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 33,
character: 6,
},
end: {
line: 35,
character: 1,
},
},
},
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 34,
character: 2,
},
end: {
line: 34,
character: 10,
},
},
},
containerName: 'Z3',
},
{
name: 'z4',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 38,
character: 6,
},
end: {
line: 40,
character: 1,
},
},
},
},
{
name: 'Z4',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 38,
character: 11,
},
end: {
line: 40,
character: 1,
},
},
},
containerName: 'z4',
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 39,
character: 2,
},
end: {
line: 39,
character: 10,
},
},
},
containerName: 'Z4',
},
{
name: 'Z5',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 42,
character: 0,
},
end: {
line: 44,
character: 1,
},
},
},
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 43,
character: 2,
},
end: {
line: 43,
character: 13,
},
},
},
containerName: 'Z5',
},
{
name: 'Z6',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 46,
character: 15,
},
end: {
line: 48,
character: 1,
},
},
},
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 47,
character: 2,
},
end: {
line: 47,
character: 13,
},
},
},
containerName: 'Z6',
},
{
name: 'Z7',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 50,
character: 7,
},
end: {
line: 52,
character: 1,
},
},
},
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 51,
character: 2,
},
end: {
line: 51,
character: 10,
},
},
},
containerName: 'Z7',
},
{
name: 'f1',
kind: 12,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 54,
character: 0,
},
end: {
line: 56,
character: 1,
},
},
},
},
{
name: 'f1_x',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 55,
character: 8,
},
end: {
line: 55,
character: 18,
},
},
},
containerName: 'f1',
},
{
name: 'f2',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 58,
character: 6,
},
end: {
line: 60,
character: 1,
},
},
},
},
{
name: 'f2_x',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 59,
character: 8,
},
end: {
line: 59,
character: 18,
},
},
},
containerName: 'f2',
},
{
name: 'f3',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 62,
character: 6,
},
end: {
line: 64,
character: 1,
},
},
},
},
{
name: 'f3_expr',
kind: 12,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 62,
character: 11,
},
end: {
line: 64,
character: 1,
},
},
},
containerName: 'f3',
},
{
name: 'f3_x',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 63,
character: 8,
},
end: {
line: 63,
character: 18,
},
},
},
containerName: 'f3_expr',
},
{
name: 'f4',
kind: 12,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 66,
character: 0,
},
end: {
line: 66,
character: 28,
},
},
},
},
{
name: 'f5',
kind: 12,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 68,
character: 15,
},
end: {
line: 68,
character: 35,
},
},
},
},
{
name: 'f6',
kind: 12,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 70,
character: 7,
},
end: {
line: 72,
character: 1,
},
},
},
},
{
name: 'f6_x',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 71,
character: 8,
},
end: {
line: 71,
character: 18,
},
},
},
containerName: 'f6',
},
{
name: '<function>',
kind: 12,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 74,
character: 1,
},
end: {
line: 76,
character: 1,
},
},
},
},
{
name: 'iife_x',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 75,
character: 8,
},
end: {
line: 75,
character: 20,
},
},
},
containerName: '<function>',
},
{
name: 'T1',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 78,
character: 0,
},
end: {
line: 83,
character: 1,
},
},
},
},
{
name: '[[call]]',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 82,
character: 2,
},
end: {
line: 82,
character: 16,
},
},
},
containerName: 'T1',
},
{
name: '[key]',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 81,
character: 2,
},
end: {
line: 81,
character: 23,
},
},
},
containerName: 'T1',
},
{
name: 'bar',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 80,
character: 2,
},
end: {
line: 80,
character: 22,
},
},
},
containerName: 'T1',
},
{
name: 'baz',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 80,
character: 9,
},
end: {
line: 80,
character: 20,
},
},
},
containerName: 'bar',
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 79,
character: 2,
},
end: {
line: 79,
character: 13,
},
},
},
containerName: 'T1',
},
{
name: 'I1',
kind: 11,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 85,
character: 0,
},
end: {
line: 89,
character: 1,
},
},
},
},
{
name: '[key]',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 88,
character: 2,
},
end: {
line: 88,
character: 23,
},
},
},
containerName: 'I1',
},
{
name: 'bar',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 87,
character: 2,
},
end: {
line: 87,
character: 22,
},
},
},
containerName: 'I1',
},
{
name: 'baz',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 87,
character: 9,
},
end: {
line: 87,
character: 20,
},
},
},
containerName: 'bar',
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 86,
character: 2,
},
end: {
line: 86,
character: 13,
},
},
},
containerName: 'I1',
},
{
name: 'I2',
kind: 11,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 91,
character: 0,
},
end: {
line: 93,
character: 1,
},
},
},
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 92,
character: 2,
},
end: {
line: 92,
character: 13,
},
},
},
containerName: 'I2',
},
{
name: 'I3',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 95,
character: 0,
},
end: {
line: 97,
character: 1,
},
},
},
},
{
name: 'foo',
kind: 6,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 96,
character: 2,
},
end: {
line: 96,
character: 13,
},
},
},
containerName: 'I3',
},
{
name: 'I4',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 99,
character: 0,
},
end: {
line: 101,
character: 1,
},
},
},
},
{
name: 'foo',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 100,
character: 2,
},
end: {
line: 100,
character: 13,
},
},
},
containerName: 'I4',
},
{
name: 'I5',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 103,
character: 0,
},
end: {
line: 105,
character: 1,
},
},
},
},
{
name: 'foo',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 104,
character: 2,
},
end: {
line: 104,
character: 13,
},
},
},
containerName: 'I5',
},
{
name: 'decl1',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 107,
character: 0,
},
end: {
line: 107,
character: 35,
},
},
},
},
{
name: 'foo',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 107,
character: 21,
},
end: {
line: 107,
character: 32,
},
},
},
containerName: 'decl1',
},
{
name: 'decl2',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 109,
character: 15,
},
end: {
line: 109,
character: 42,
},
},
},
},
{
name: 'foo',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 109,
character: 28,
},
end: {
line: 109,
character: 39,
},
},
},
containerName: 'decl2',
},
{
name: 'foo',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 111,
character: 25,
},
end: {
line: 111,
character: 36,
},
},
},
},
{
name: 'default',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 113,
character: 0,
},
end: {
line: 115,
character: 2,
},
},
},
},
{
name: 'foo',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 114,
character: 2,
},
end: {
line: 114,
character: 10,
},
},
},
containerName: 'default',
},
{
name: 'M1',
kind: 2,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 117,
character: 0,
},
end: {
line: 119,
character: 1,
},
},
},
},
{
name: 'C',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 118,
character: 2,
},
end: {
line: 118,
character: 20,
},
},
},
containerName: 'M1',
},
{
name: '"M2"',
kind: 2,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 121,
character: 0,
},
end: {
line: 123,
character: 1,
},
},
},
},
{
name: 'C',
kind: 5,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 122,
character: 2,
},
end: {
line: 122,
character: 20,
},
},
},
containerName: '"M2"',
},
{
name: 'E1',
kind: 10,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 125,
character: 0,
},
end: {
line: 127,
character: 1,
},
},
},
},
{
name: 'X',
kind: 22,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 126,
character: 2,
},
end: {
line: 126,
character: 3,
},
},
},
containerName: 'E1',
},
{
name: 'loops',
kind: 12,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 129,
character: 0,
},
end: {
line: 133,
character: 1,
},
},
},
},
{
name: 'k',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 132,
character: 11,
},
end: {
line: 132,
character: 12,
},
},
},
containerName: 'loops',
},
{
name: 'x',
kind: 7,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 131,
character: 18,
},
end: {
line: 131,
character: 24,
},
},
},
containerName: 'loops',
},
{
name: 'j',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 131,
character: 11,
},
end: {
line: 131,
character: 12,
},
},
},
containerName: 'loops',
},
{
name: 'i',
kind: 13,
location: {
uri: '<PLACEHOLDER_PROJECT_URL>/stuff.js',
range: {
start: {
line: 130,
character: 11,
},
end: {
line: 130,
character: 16,
},
},
},
containerName: 'loops',
},
],
},
],
[
'textDocument/publishDiagnostics',
'window/showStatus',
'$/cancelRequest',
],
),
]),
],
): Suite);