sample.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480
  1. monaco.languages.registerDocumentSymbolProvider('json', {
  2. provideDocumentSymbols: function (model, token) {
  3. return [
  4. {
  5. range: {
  6. startLineNumber: 1,
  7. startColumn: 1,
  8. endLineNumber: 2,
  9. endColumn: 1
  10. },
  11. name: 'File',
  12. kind: 0,
  13. detail: "",
  14. tags: [],
  15. selectionRange: {
  16. startLineNumber: 1,
  17. startColumn: 1,
  18. endLineNumber: 2,
  19. endColumn: 1
  20. }
  21. },
  22. {
  23. range: {
  24. startLineNumber: 1,
  25. startColumn: 1,
  26. endLineNumber: 2,
  27. endColumn: 1
  28. },
  29. name: 'Module',
  30. kind: 1,
  31. detail: "",
  32. tags: [],
  33. selectionRange: {
  34. startLineNumber: 1,
  35. startColumn: 1,
  36. endLineNumber: 2,
  37. endColumn: 1
  38. }
  39. },
  40. {
  41. range: {
  42. startLineNumber: 1,
  43. startColumn: 1,
  44. endLineNumber: 2,
  45. endColumn: 1
  46. },
  47. name: 'Namespace',
  48. kind: 2,
  49. detail: "",
  50. tags: [],
  51. selectionRange: {
  52. startLineNumber: 1,
  53. startColumn: 1,
  54. endLineNumber: 2,
  55. endColumn: 1
  56. }
  57. },
  58. {
  59. range: {
  60. startLineNumber: 1,
  61. startColumn: 1,
  62. endLineNumber: 2,
  63. endColumn: 1
  64. },
  65. name: 'Package',
  66. kind: 3,
  67. detail: "",
  68. tags: [],
  69. selectionRange: {
  70. startLineNumber: 1,
  71. startColumn: 1,
  72. endLineNumber: 2,
  73. endColumn: 1
  74. }
  75. },
  76. {
  77. range: {
  78. startLineNumber: 1,
  79. startColumn: 1,
  80. endLineNumber: 2,
  81. endColumn: 1
  82. },
  83. name: 'Class',
  84. kind: 4,
  85. detail: "",
  86. tags: [],
  87. selectionRange: {
  88. startLineNumber: 1,
  89. startColumn: 1,
  90. endLineNumber: 2,
  91. endColumn: 1
  92. }
  93. },
  94. {
  95. range: {
  96. startLineNumber: 1,
  97. startColumn: 1,
  98. endLineNumber: 2,
  99. endColumn: 1
  100. },
  101. name: 'Method',
  102. kind: 5,
  103. detail: "",
  104. tags: [],
  105. selectionRange: {
  106. startLineNumber: 1,
  107. startColumn: 1,
  108. endLineNumber: 2,
  109. endColumn: 1
  110. }
  111. },
  112. {
  113. range: {
  114. startLineNumber: 1,
  115. startColumn: 1,
  116. endLineNumber: 2,
  117. endColumn: 1
  118. },
  119. name: 'Property',
  120. kind: 6,
  121. detail: "",
  122. tags: [],
  123. selectionRange: {
  124. startLineNumber: 1,
  125. startColumn: 1,
  126. endLineNumber: 2,
  127. endColumn: 1
  128. }
  129. },
  130. {
  131. range: {
  132. startLineNumber: 1,
  133. startColumn: 1,
  134. endLineNumber: 2,
  135. endColumn: 1
  136. },
  137. name: 'Field',
  138. kind: 7,
  139. detail: "",
  140. tags: [],
  141. selectionRange: {
  142. startLineNumber: 1,
  143. startColumn: 1,
  144. endLineNumber: 2,
  145. endColumn: 1
  146. }
  147. },
  148. {
  149. range: {
  150. startLineNumber: 1,
  151. startColumn: 1,
  152. endLineNumber: 2,
  153. endColumn: 1
  154. },
  155. name: 'Constructor',
  156. kind: 8,
  157. detail: "",
  158. tags: [],
  159. selectionRange: {
  160. startLineNumber: 1,
  161. startColumn: 1,
  162. endLineNumber: 2,
  163. endColumn: 1
  164. }
  165. },
  166. {
  167. range: {
  168. startLineNumber: 1,
  169. startColumn: 1,
  170. endLineNumber: 2,
  171. endColumn: 1
  172. },
  173. name: 'Enum',
  174. kind: 9,
  175. detail: "",
  176. tags: [],
  177. selectionRange: {
  178. startLineNumber: 1,
  179. startColumn: 1,
  180. endLineNumber: 2,
  181. endColumn: 1
  182. }
  183. },
  184. {
  185. range: {
  186. startLineNumber: 1,
  187. startColumn: 1,
  188. endLineNumber: 2,
  189. endColumn: 1
  190. },
  191. name: 'Interface',
  192. kind: 10,
  193. detail: "",
  194. tags: [],
  195. selectionRange: {
  196. startLineNumber: 1,
  197. startColumn: 1,
  198. endLineNumber: 2,
  199. endColumn: 1
  200. }
  201. },
  202. {
  203. range: {
  204. startLineNumber: 1,
  205. startColumn: 1,
  206. endLineNumber: 2,
  207. endColumn: 1
  208. },
  209. name: 'Function',
  210. kind: 11,
  211. detail: "",
  212. tags: [],
  213. selectionRange: {
  214. startLineNumber: 1,
  215. startColumn: 1,
  216. endLineNumber: 2,
  217. endColumn: 1
  218. }
  219. },
  220. {
  221. range: {
  222. startLineNumber: 1,
  223. startColumn: 1,
  224. endLineNumber: 2,
  225. endColumn: 1
  226. },
  227. name: 'Variable',
  228. kind: 12,
  229. detail: "",
  230. tags: [],
  231. selectionRange: {
  232. startLineNumber: 1,
  233. startColumn: 1,
  234. endLineNumber: 2,
  235. endColumn: 1
  236. }
  237. },
  238. {
  239. range: {
  240. startLineNumber: 1,
  241. startColumn: 1,
  242. endLineNumber: 2,
  243. endColumn: 1
  244. },
  245. name: 'Constant',
  246. kind: 13,
  247. detail: "",
  248. tags: [],
  249. selectionRange: {
  250. startLineNumber: 1,
  251. startColumn: 1,
  252. endLineNumber: 2,
  253. endColumn: 1
  254. }
  255. },
  256. {
  257. range: {
  258. startLineNumber: 1,
  259. startColumn: 1,
  260. endLineNumber: 2,
  261. endColumn: 1
  262. },
  263. name: 'String',
  264. kind: 14,
  265. detail: "",
  266. tags: [],
  267. selectionRange: {
  268. startLineNumber: 1,
  269. startColumn: 1,
  270. endLineNumber: 2,
  271. endColumn: 1
  272. }
  273. },
  274. {
  275. range: {
  276. startLineNumber: 1,
  277. startColumn: 1,
  278. endLineNumber: 2,
  279. endColumn: 1
  280. },
  281. name: 'Number',
  282. kind: 15,
  283. detail: "",
  284. tags: [],
  285. selectionRange: {
  286. startLineNumber: 1,
  287. startColumn: 1,
  288. endLineNumber: 2,
  289. endColumn: 1
  290. }
  291. },
  292. {
  293. range: {
  294. startLineNumber: 1,
  295. startColumn: 1,
  296. endLineNumber: 2,
  297. endColumn: 1
  298. },
  299. name: 'Boolean',
  300. kind: 16,
  301. detail: "",
  302. tags: [],
  303. selectionRange: {
  304. startLineNumber: 1,
  305. startColumn: 1,
  306. endLineNumber: 2,
  307. endColumn: 1
  308. }
  309. },
  310. {
  311. range: {
  312. startLineNumber: 1,
  313. startColumn: 1,
  314. endLineNumber: 2,
  315. endColumn: 1
  316. },
  317. name: 'Array',
  318. kind: 17,
  319. detail: "",
  320. tags: [],
  321. selectionRange: {
  322. startLineNumber: 1,
  323. startColumn: 1,
  324. endLineNumber: 2,
  325. endColumn: 1
  326. }
  327. },
  328. {
  329. range: {
  330. startLineNumber: 1,
  331. startColumn: 1,
  332. endLineNumber: 2,
  333. endColumn: 1
  334. },
  335. name: 'Object',
  336. kind: 18,
  337. detail: "",
  338. tags: [],
  339. selectionRange: {
  340. startLineNumber: 1,
  341. startColumn: 1,
  342. endLineNumber: 2,
  343. endColumn: 1
  344. }
  345. },
  346. {
  347. range: {
  348. startLineNumber: 1,
  349. startColumn: 1,
  350. endLineNumber: 2,
  351. endColumn: 1
  352. },
  353. name: 'Key',
  354. kind: 19,
  355. detail: "",
  356. tags: [],
  357. selectionRange: {
  358. startLineNumber: 1,
  359. startColumn: 1,
  360. endLineNumber: 2,
  361. endColumn: 1
  362. }
  363. },
  364. {
  365. range: {
  366. startLineNumber: 1,
  367. startColumn: 1,
  368. endLineNumber: 2,
  369. endColumn: 1
  370. },
  371. name: 'Null',
  372. kind: 20,
  373. detail: "",
  374. tags: [],
  375. selectionRange: {
  376. startLineNumber: 1,
  377. startColumn: 1,
  378. endLineNumber: 2,
  379. endColumn: 1
  380. }
  381. },
  382. {
  383. range: {
  384. startLineNumber: 1,
  385. startColumn: 1,
  386. endLineNumber: 2,
  387. endColumn: 1
  388. },
  389. name: 'EnumMember',
  390. kind: 21,
  391. detail: "",
  392. tags: [],
  393. selectionRange: {
  394. startLineNumber: 1,
  395. startColumn: 1,
  396. endLineNumber: 2,
  397. endColumn: 1
  398. }
  399. },
  400. {
  401. range: {
  402. startLineNumber: 1,
  403. startColumn: 1,
  404. endLineNumber: 2,
  405. endColumn: 1
  406. },
  407. name: 'Struct',
  408. kind: 22,
  409. detail: "",
  410. tags: [],
  411. selectionRange: {
  412. startLineNumber: 1,
  413. startColumn: 1,
  414. endLineNumber: 2,
  415. endColumn: 1
  416. }
  417. },
  418. {
  419. range: {
  420. startLineNumber: 1,
  421. startColumn: 1,
  422. endLineNumber: 2,
  423. endColumn: 1
  424. },
  425. name: 'Event',
  426. kind: 23,
  427. detail: "",
  428. tags: [],
  429. selectionRange: {
  430. startLineNumber: 1,
  431. startColumn: 1,
  432. endLineNumber: 2,
  433. endColumn: 1
  434. }
  435. },
  436. {
  437. range: {
  438. startLineNumber: 1,
  439. startColumn: 1,
  440. endLineNumber: 2,
  441. endColumn: 1
  442. },
  443. name: 'Operator',
  444. kind: 24,
  445. detail: "",
  446. tags: [],
  447. selectionRange: {
  448. startLineNumber: 1,
  449. startColumn: 1,
  450. endLineNumber: 2,
  451. endColumn: 1
  452. }
  453. },
  454. {
  455. range: {
  456. startLineNumber: 1,
  457. startColumn: 1,
  458. endLineNumber: 2,
  459. endColumn: 1
  460. },
  461. name: 'TypeParameter',
  462. kind: 25,
  463. detail: "",
  464. tags: [],
  465. selectionRange: {
  466. startLineNumber: 1,
  467. startColumn: 1,
  468. endLineNumber: 2,
  469. endColumn: 1
  470. }
  471. },
  472. ];
  473. }
  474. });
  475. // press Ctrl+Shift+O to show the symbols in the editor
  476. monaco.editor.create(document.getElementById("container"), {
  477. value: "{\n\t\"dependencies\": {\n\t\t\n\t}\n}\n",
  478. language: "json"
  479. });