TypicalOperator

Untitled

Aug 10th, 2024
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 65.80 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Monaco Editor</title>
  7. <script src="https://unpkg.com/monaco-editor@latest/min/vs/loader.js"></script>
  8. <style>
  9. html, body {
  10. height: 100%;
  11. margin: 0;
  12. }
  13. #container {
  14. height: 100%;
  15. width: 100%;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <div id="container"></div>
  21. <script>
  22. let editor;
  23.  
  24. require.config({ paths: { 'vs': 'https://unpkg.com/monaco-editor@latest/min/vs' }});
  25.  
  26. require(['vs/editor/editor.main'], function() {
  27. monaco.editor.defineTheme('custom-dark-bg', {
  28. base: 'vs-dark',
  29. inherit: true,
  30. rules: [
  31. { token: 'keyword', foreground: 'ff8585' },
  32. { token: 'constant', foreground: 'ff8585' },
  33. { token: 'type', foreground: '9eeaff' },
  34. { token: 'function', foreground: 'ff8585' },
  35. { token: 'comment', foreground: '808080' },
  36. { token: 'number', foreground: 'ffda75' },
  37. { token: 'string', foreground: 'b8ffa1' },
  38. ],
  39. colors: {
  40. 'editor.background': '#000000'
  41. }
  42. });
  43.  
  44. monaco.languages.registerCompletionItemProvider('lua', {
  45. triggerCharacters: ['.', ':'],
  46. provideCompletionItems: (model, position) => {
  47. const word = model.getWordUntilPosition(position);
  48. const range = {
  49. startLineNumber: position.lineNumber,
  50. endLineNumber: position.lineNumber,
  51. startColumn: word.startColumn,
  52. endColumn: word.endColumn
  53. };
  54. const suggestions = [
  55. {
  56. label: 'UDim2',
  57. kind: monaco.languages.CompletionItemKind.Class,
  58. insertText: 'UDim2',
  59. range: range
  60. },
  61. {
  62. label: 'new',
  63. kind: monaco.languages.CompletionItemKind.Method,
  64. insertText: 'new(${1:number}, ${2:number}, ${3:number})',
  65. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  66. documentation: 'Creates a new UDim2 object.',
  67. range: range
  68. },
  69. {
  70. label: 'Vector3',
  71. kind: monaco.languages.CompletionItemKind.Class,
  72. insertText: 'Vector3',
  73. range: range
  74. },
  75. {
  76. label: 'new',
  77. kind: monaco.languages.CompletionItemKind.Method,
  78. insertText: 'new(${1:number}, ${2:number}, ${3:number})',
  79. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  80. documentation: 'Creates a new Vector3 object.',
  81. range: range
  82. },
  83. {
  84. label: 'print',
  85. kind: monaco.languages.CompletionItemKind.Function,
  86. insertText: 'print(${1:message})',
  87. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  88. documentation: 'Prints a message to the output.',
  89. range: range
  90. },
  91. {
  92. label: 'printidentity',
  93. kind: monaco.languages.CompletionItemKind.Function,
  94. insertText: 'printidentity()',
  95. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  96. documentation: 'Prints the current identity level of the script.',
  97. range: range
  98. },
  99. {
  100. label: 'getgenv',
  101. kind: monaco.languages.CompletionItemKind.Function,
  102. insertText: 'getgenv()',
  103. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  104. documentation: 'Returns the global enviroment.',
  105. range: range
  106. },
  107. {
  108. label: 'getrenv',
  109. kind: monaco.languages.CompletionItemKind.Function,
  110. insertText: 'getgenv()',
  111. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  112. documentation: 'Returns the global Roblox enviroment.',
  113. range: range
  114. },
  115. {
  116. label: 'getreg',
  117. kind: monaco.languages.CompletionItemKind.Function,
  118. insertText: 'getreg()',
  119. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  120. documentation: 'Returns the lua registry.',
  121. range: range
  122. },
  123. {
  124. label: 'getgc',
  125. kind: monaco.languages.CompletionItemKind.Function,
  126. insertText: 'getgc()',
  127. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  128. documentation: 'Returns a copy of the Lua GC list.',
  129. range: range
  130. },
  131. {
  132. label: 'getinstances',
  133. kind: monaco.languages.CompletionItemKind.Function,
  134. insertText: 'getinstances()',
  135. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  136. documentation: 'Returns a list of all instances within the game.',
  137. range: range
  138. },
  139. {
  140. label: 'getnilinstances',
  141. kind: monaco.languages.CompletionItemKind.Function,
  142. insertText: 'getnilinstances()',
  143. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  144. documentation: 'Returns a list of all instances parented to nil within the game.',
  145. range: range
  146. },
  147. {
  148. label: 'getscripts',
  149. kind: monaco.languages.CompletionItemKind.Function,
  150. insertText: 'getscripts()',
  151. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  152. documentation: 'Returns a list of all scripts within the game.',
  153. range: range
  154. },
  155. {
  156. label: 'getloadedmodules',
  157. kind: monaco.languages.CompletionItemKind.Function,
  158. insertText: 'getgenv()',
  159. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  160. documentation: 'Returns all ModuleScripts loaded in the game.',
  161. range: range
  162. },
  163. {
  164. label: 'getconnections',
  165. kind: monaco.languages.CompletionItemKind.Function,
  166. insertText: 'getconnections(${1:obj})',
  167. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  168. documentation: 'Gets a list of connections to the specified signal. List of things you can do to a connection below.',
  169. range: range
  170. },
  171. {
  172. label: 'firesignal',
  173. kind: monaco.languages.CompletionItemKind.Function,
  174. insertText: 'firesignal(${1:obj})',
  175. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  176. documentation: 'Fires all the connections connected to the signal obj.',
  177. range: range
  178. },
  179. {
  180. label: 'fireclickdetector',
  181. kind: monaco.languages.CompletionItemKind.Function,
  182. insertText: 'fireclickdetector(${1:ClickDetector}, ${2:Distance})',
  183. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  184. documentation: "Fires the designated ClickDetector with provided Distance. If Distance isn't provided, it will default to 0.",
  185. range: range
  186. },
  187. {
  188. label: 'firetouchinterest',
  189. kind: monaco.languages.CompletionItemKind.Function,
  190. insertText: 'firetouchinterest(${1:Part}, ${2:Transmitter}, ${2:Toggle})',
  191. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  192. documentation: 'Fires the designated Transmitter with Part. The Toggle argument is used to tell whether the Part is currently being touched.',
  193. range: range
  194. },
  195. {
  196. label: 'getsenv',
  197. kind: monaco.languages.CompletionItemKind.Function,
  198. insertText: 'getsenv(${1:Script})',
  199. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  200. documentation: 'Returns the environment of Script. Returns nil if the script is not running.',
  201. range: range
  202. },
  203. {
  204. label: 'getcallingscript',
  205. kind: monaco.languages.CompletionItemKind.Function,
  206. insertText: 'getcallingscript()',
  207. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  208. documentation: "Gets the script that is calling this function.",
  209. range: range
  210. },
  211. {
  212. label: 'getrawmetatable',
  213. kind: monaco.languages.CompletionItemKind.Function,
  214. insertText: 'getrawmetatable(${1:value})',
  215. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  216. documentation: "Retrieve the metatable of value irregardless of value's metatable's __metatable field. Returns nil if it doesn't exist.",
  217. range: range
  218. },
  219. {
  220. label: 'setrawmetatable',
  221. kind: monaco.languages.CompletionItemKind.Function,
  222. insertText: 'setrawmetatable(${1:o}, ${2:mt})',
  223. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  224. documentation: "Sets o's metatable to mt even if the __metatable field exists in o's metatable.",
  225. range: range
  226. },
  227. {
  228. label: 'setreadonly',
  229. kind: monaco.languages.CompletionItemKind.Function,
  230. insertText: 'setreadonly(${1:table}, ${2:val})',
  231. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  232. documentation: "Sets table's read-only value to val.",
  233. range: range
  234. },
  235. {
  236. label: 'isreadonly',
  237. kind: monaco.languages.CompletionItemKind.Function,
  238. insertText: 'isreadonly(${1:table})',
  239. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  240. documentation: "Returns table's read-only condition.",
  241. range: range
  242. },
  243. {
  244. label: 'isrbxactive',
  245. kind: monaco.languages.CompletionItemKind.Function,
  246. insertText: 'isrbxactive()',
  247. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  248. documentation: "Returns if the Roblox window is in focus. This must return true for any other mouse/keyboard function to work.",
  249. range: range
  250. },
  251. {
  252. label: 'keypress',
  253. kind: monaco.languages.CompletionItemKind.Function,
  254. insertText: 'keypress(${1:keycode})',
  255. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  256. documentation: "Simulates a key press for the specified keycode. For more information: https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes",
  257. range: range
  258. },
  259. {
  260. label: 'keyrelease',
  261. kind: monaco.languages.CompletionItemKind.Function,
  262. insertText: 'keyrelease(${1:key})',
  263. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  264. documentation: "Releases key on the keyboard. You can access the int key values on MSDN.",
  265. range: range
  266. },
  267. {
  268. label: 'mouse1click',
  269. kind: monaco.languages.CompletionItemKind.Function,
  270. insertText: 'mouse1click()',
  271. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  272. documentation: "Simulates a full left mouse button press.",
  273. range: range
  274. },
  275. {
  276. label: 'mouse1press',
  277. kind: monaco.languages.CompletionItemKind.Function,
  278. insertText: 'mouse1press()',
  279. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  280. documentation: "Simulates a left mouse button press without releasing it.",
  281. range: range
  282. },
  283. {
  284. label: 'mouse1release',
  285. kind: monaco.languages.CompletionItemKind.Function,
  286. insertText: 'mouse1release()',
  287. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  288. documentation: "Simulates a left mouse button release.",
  289. range: range
  290. },
  291. {
  292. label: 'mouse2click',
  293. kind: monaco.languages.CompletionItemKind.Function,
  294. insertText: 'mouse2click()',
  295. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  296. documentation: "Simulates a full right mouse button press.",
  297. range: range
  298. },
  299. {
  300. label: 'mouse2press',
  301. kind: monaco.languages.CompletionItemKind.Function,
  302. insertText: 'mouse2press()',
  303. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  304. documentation: "Clicks down on the right mouse button.",
  305. range: range
  306. },
  307. {
  308. label: 'mouse2release',
  309. kind: monaco.languages.CompletionItemKind.Function,
  310. insertText: 'mouse2release()',
  311. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  312. documentation: "Simulates a right mouse button release.",
  313. range: range
  314. },
  315. {
  316. label: 'mousescroll',
  317. kind: monaco.languages.CompletionItemKind.Function,
  318. insertText: 'mousescroll(${1:px})',
  319. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  320. documentation: "Scrolls the mouse wheel virtually by px pixels.",
  321. range: range
  322. },
  323. {
  324. label: 'mousemoverel',
  325. kind: monaco.languages.CompletionItemKind.Function,
  326. insertText: 'mousemoverel(${1:x}, ${2:y})',
  327. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  328. documentation: "Moves the mouse cursor relatively to the current mouse position by coordinates x and y.",
  329. range: range
  330. },
  331. {
  332. label: 'mousemoveabs',
  333. kind: monaco.languages.CompletionItemKind.Function,
  334. insertText: 'mouse2click(${1:x}, ${2:y})',
  335. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  336. documentation: "Move's your mouse to the x and y coordinates in pixels from topleft of the roblox window.",
  337. range: range
  338. },
  339. {
  340. label: 'hookfunction',
  341. kind: monaco.languages.CompletionItemKind.Function,
  342. insertText: 'hookfunction(${1:old}, ${2:hook})',
  343. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  344. documentation: "Hooks function 'old', replacing it with the function 'hook'. The old function is returned, you must use it to call the function further.",
  345. range: range
  346. },
  347. {
  348. label: 'newcclosure',
  349. kind: monaco.languages.CompletionItemKind.Function,
  350. insertText: 'newcclosure(${1:f})',
  351. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  352. documentation: "Pushes a new CClosure that invokes function f upon call. Used for metatable hooks.",
  353. range: range
  354. },
  355. {
  356. label: 'loadstring',
  357. kind: monaco.languages.CompletionItemKind.Function,
  358. insertText: 'loadstring(${1:chunk}, [${2:chunkname}])',
  359. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  360. documentation: "Loads chunk as a lua function and returns it if compilation is succesful. Otherwise, if an error has occured during compilation, nil followed by the error message will be returned.",
  361. range: range
  362. },
  363. {
  364. label: 'checkcaller',
  365. kind: monaco.languages.CompletionItemKind.Function,
  366. insertText: 'checkcaller()',
  367. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  368. documentation: "Returns true if the current thread was made by Sensical-Ware. Useful for metatable hooks.",
  369. range: range
  370. },
  371. {
  372. label: 'islclosure',
  373. kind: monaco.languages.CompletionItemKind.Function,
  374. insertText: 'checkcaller(${1:f})',
  375. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  376. documentation: "Returns true if f is an LClosure",
  377. range: range
  378. },
  379. {
  380. label: 'iscclosure',
  381. kind: monaco.languages.CompletionItemKind.Function,
  382. insertText: 'iscclosure(${1:f})',
  383. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  384. documentation: "Returns true if f is an CClosure",
  385. range: range
  386. },
  387. {
  388. label: 'dumpstring',
  389. kind: monaco.languages.CompletionItemKind.Function,
  390. insertText: 'dumpstring(${1:Script})',
  391. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  392. documentation: "Returns the Roblox formatted bytecode for source string Script.",
  393. range: range
  394. },
  395. {
  396. label: 'decompile',
  397. kind: monaco.languages.CompletionItemKind.Function,
  398. insertText: 'decompile(${1:Script}, ${2:mode}, ${3:timeout})',
  399. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  400. documentation: "Decompiles Script and returns the decompiled script. If the decompilation fails, then the return value will be an error message.",
  401. range: range
  402. },
  403. {
  404. label: 'rconsoleprint',
  405. kind: monaco.languages.CompletionItemKind.Function,
  406. insertText: 'rconsoleprint(${1:message})',
  407. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  408. documentation: "Prints message into the console. rconsoleprint also supports colors.",
  409. range: range
  410. },
  411. {
  412. label: 'rconsoleinfo',
  413. kind: monaco.languages.CompletionItemKind.Function,
  414. insertText: 'rconsoleinfo(${1:message})',
  415. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  416. documentation: "Prints message into the console, with a info text before it.",
  417. range: range
  418. },
  419. {
  420. label: 'rconsolewarn',
  421. kind: monaco.languages.CompletionItemKind.Function,
  422. insertText: 'rconsolewarn(${1:message})',
  423. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  424. documentation: "Prints message into the console, with a warning text before it.",
  425. range: range
  426. },
  427. {
  428. label: 'rconsoleerr',
  429. kind: monaco.languages.CompletionItemKind.Function,
  430. insertText: 'rconsoleerr(${1:message})',
  431. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  432. documentation: "Prints message into the console, with a error text before it.",
  433. range: range
  434. },
  435. {
  436. label: 'rconsoleclear',
  437. kind: monaco.languages.CompletionItemKind.Function,
  438. insertText: 'rconsoleclear()',
  439. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  440. documentation: "Clears the console.",
  441. range: range
  442. },
  443. {
  444. label: 'rconsolename',
  445. kind: monaco.languages.CompletionItemKind.Function,
  446. insertText: 'rconsolename(${1:title})',
  447. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  448. documentation: "Prints message into the console, with a warning text before it.",
  449. range: range
  450. },
  451. {
  452. label: 'rconsoleinput',
  453. kind: monaco.languages.CompletionItemKind.Function,
  454. insertText: 'rconsoleinput()',
  455. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  456. documentation: "Yields until the user inputs information into their console. Returns the input they put in.",
  457. range: range
  458. },
  459. {
  460. label: 'rconsoleinputasync',
  461. kind: monaco.languages.CompletionItemKind.Function,
  462. insertText: 'rconsoleinputasync()',
  463. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  464. documentation: "Yields until the user inputs information into their console. Returns the input they put in. Same as rconsoleinput.",
  465. range: range
  466. },
  467. {
  468. label: 'printconsole',
  469. kind: monaco.languages.CompletionItemKind.Function,
  470. insertText: 'printconsole(${1:message}, ${2:red}, ${3:green}, ${4:blue})',
  471. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  472. documentation: "Prints message into the internal and integrated console with RGB value. To view the internal console, enable Internal UI in the Options menu and when in-game press INSERT on your keyboard.",
  473. range: range
  474. },
  475. {
  476. label: 'readfile',
  477. kind: monaco.languages.CompletionItemKind.Function,
  478. insertText: 'readfile(${1:path})',
  479. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  480. documentation: "Reads the contents of the file located at path and returns it. If the file does not exist, it errors.",
  481. range: range
  482. },
  483. {
  484. label: 'writefile',
  485. kind: monaco.languages.CompletionItemKind.Function,
  486. insertText: 'writefile(${1:path}, ${2:contents})',
  487. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  488. documentation: `Writes contents to the supplied filepath.
  489.  
  490. Extensions that are not allowed: .exe, .scr, .bat, .com, .csh, .msi, .vb, .vbs, .vbe, .ws, .wsf, .wsh, .ps1, .psy.`,
  491. range: range
  492. },
  493. {
  494. label: 'appendfile',
  495. kind: monaco.languages.CompletionItemKind.Function,
  496. insertText: 'appendfile(${1:path}, ${2:content})',
  497. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  498. documentation: "Appends content to the file contents at path. If the file does not exist, it errors.",
  499. range: range
  500. },
  501. {
  502. label: 'loadfile',
  503. kind: monaco.languages.CompletionItemKind.Function,
  504. insertText: 'loadfile(${1:path})',
  505. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  506. documentation: "Loads in the contents of a file as a chunk and returns it if compilation is successful. Otherwise, if an error has occured during compilation, nil followed by the error message will be returned.",
  507. range: range
  508. },
  509. {
  510. label: 'listfiles',
  511. kind: monaco.languages.CompletionItemKind.Function,
  512. insertText: 'listfiles(${1:folder})',
  513. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  514. documentation: "Returns a table of files in folder.",
  515. range: range
  516. },
  517. {
  518. label: 'isfile',
  519. kind: monaco.languages.CompletionItemKind.Function,
  520. insertText: 'isfile(${1:path})',
  521. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  522. documentation: "Appends content to the file contents at path. If the file does not exist, it errors.",
  523. range: range
  524. },
  525. {
  526. label: 'isfolder',
  527. kind: monaco.languages.CompletionItemKind.Function,
  528. insertText: 'isfolder(${1:path})',
  529. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  530. documentation: "Returns if path is a folder or not.",
  531. range: range
  532. },
  533. {
  534. label: 'makefolder',
  535. kind: monaco.languages.CompletionItemKind.Function,
  536. insertText: 'makefolder(${1:filepath})',
  537. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  538. documentation: "Creates a new folder at filepath.",
  539. range: range
  540. },
  541. {
  542. label: 'delfolder',
  543. kind: monaco.languages.CompletionItemKind.Function,
  544. insertText: 'delfolder(${1:path})',
  545. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  546. documentation: "Deletes the folder in the supplied path, if no folder exist errors.",
  547. range: range
  548. },
  549. {
  550. label: 'delfile',
  551. kind: monaco.languages.CompletionItemKind.Function,
  552. insertText: 'delfile(${1:path})',
  553. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  554. documentation: "Deletes the file in the supplied path, if no file exist errors.",
  555. range: range
  556. },
  557. {
  558. label: 'getstates',
  559. kind: monaco.languages.CompletionItemKind.Function,
  560. insertText: 'getstates()',
  561. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  562. documentation: "Returns a table populated with all threads",
  563. range: range
  564. },
  565. {
  566. label: 'getinstancefromstate',
  567. kind: monaco.languages.CompletionItemKind.Function,
  568. insertText: 'getinstancefromstate()',
  569. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  570. documentation: "Exact function unknown.",
  571. range: range
  572. },
  573. {
  574. label: 'getpointerfromstate',
  575. kind: monaco.languages.CompletionItemKind.Function,
  576. insertText: 'getpointerfromstate()',
  577. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  578. documentation: "Exact function unknown.",
  579. range: range
  580. },
  581. {
  582. label: 'getstateenv',
  583. kind: monaco.languages.CompletionItemKind.Function,
  584. insertText: 'getstateenv(${1:state})',
  585. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  586. documentation: "Returns the enviroment for state.",
  587. range: range
  588. },
  589. {
  590. label: 'getcallstack',
  591. kind: monaco.languages.CompletionItemKind.Function,
  592. insertText: 'getcallstack()',
  593. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  594. documentation: "Exact function unknown.",
  595. range: range
  596. },
  597. {
  598. label: 'setclipboard',
  599. kind: monaco.languages.CompletionItemKind.Function,
  600. insertText: 'setclipboard(${value})',
  601. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  602. documentation: "Sets value to the clipboard.",
  603. range: range
  604. },
  605. {
  606. label: 'setfflag',
  607. kind: monaco.languages.CompletionItemKind.Function,
  608. insertText: 'setfflag(${1:FFlag}, ${2:Value})',
  609. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  610. documentation: "Returns a table populated with all threads",
  611. range: range
  612. },
  613. {
  614. label: 'getnamecallmethod',
  615. kind: monaco.languages.CompletionItemKind.Function,
  616. insertText: 'getnamecallmethod()',
  617. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  618. documentation: "Returns the namecall method if the function is called in an __namecall metatable hook.",
  619. range: range
  620. },
  621. {
  622. label: 'setnamecallmethod',
  623. kind: monaco.languages.CompletionItemKind.Function,
  624. insertText: 'setnamecallmethod()',
  625. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  626. documentation: "Sets the current namecall method to the new namecall method. Must be called in a __namecall metatable hook.",
  627. range: range
  628. },
  629. {
  630. label: 'isluau',
  631. kind: monaco.languages.CompletionItemKind.Function,
  632. insertText: 'isluau()',
  633. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  634. documentation: "Returns true if the game is running LuaU.",
  635. range: range
  636. },
  637. {
  638. label: 'setnonreplicatedproperty',
  639. kind: monaco.languages.CompletionItemKind.Function,
  640. insertText: 'setnonreplicatedproperty(${1:obj}, ${2:prop}, ${3:value})',
  641. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  642. documentation: "Returns the namecall method if the function is called in an __namecall metatable hook.",
  643. range: range
  644. },
  645. {
  646. label: 'getspecialinfo',
  647. kind: monaco.languages.CompletionItemKind.Function,
  648. insertText: 'getspecialinfo(${1:obj})',
  649. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  650. documentation: "Gets a list of special properties for MeshParts, UnionOperations, and Terrain instances.",
  651. range: range
  652. },
  653. {
  654. label: 'saveinstance',
  655. kind: monaco.languages.CompletionItemKind.Function,
  656. insertText: 'saveinstance(${1:t})',
  657. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  658. documentation: "Gets a list of special properties for MeshParts, UnionOperations, and Terrain instances.",
  659. range: range
  660. },
  661. {
  662. label: 'messagebox',
  663. kind: monaco.languages.CompletionItemKind.Function,
  664. insertText: 'messagebox(${1:text}, ${2:caption}, ${3:style})',
  665. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  666. documentation: "Gets a list of special properties for MeshParts, UnionOperations, and Terrain instances.",
  667. range: range
  668. },
  669. {
  670. label: 'Drawing',
  671. kind: monaco.languages.CompletionItemKind.Variable,
  672. insertText: 'Drawing',
  673. documentation: 'The Drawing library.',
  674. range: range
  675. },
  676.  
  677. {
  678. label: 'syn',
  679. kind: monaco.languages.CompletionItemKind.Variable,
  680. insertText: 'syn',
  681. documentation: 'The syn library.',
  682. range: range
  683. },
  684. {
  685. label: 'cache_replace',
  686. kind: monaco.languages.CompletionItemKind.Method,
  687. insertText: 'cache_replace(${1:obj}, ${2:t_obj})',
  688. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  689. documentation: 'Replace obj in the instance cache with t_obj.',
  690. range: range
  691. },
  692. {
  693. label: 'cache_invalidate',
  694. kind: monaco.languages.CompletionItemKind.Method,
  695. insertText: 'cache_invalidate(${1:obj})',
  696. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  697. documentation: 'Invalidate obj\'s cache entry, forcing a recache upon the next lookup.',
  698. range: range
  699. },
  700. {
  701. label: 'set_thread_identity',
  702. kind: monaco.languages.CompletionItemKind.Method,
  703. insertText: 'set_thread_identity(${1:n})',
  704. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  705. documentation: 'Sets the current thread identity after a Task Scheduler cycle is performed. (Note: call wait() after invoking this function for the expected results)',
  706. range: range
  707. },
  708. {
  709. label: 'get_thread_identity',
  710. kind: monaco.languages.CompletionItemKind.Method,
  711. insertText: 'get_thread_identity()',
  712. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  713. documentation: 'Returns the current thread identity.',
  714. range: range
  715. },
  716. {
  717. label: 'is_cached',
  718. kind: monaco.languages.CompletionItemKind.Method,
  719. insertText: 'is_cached(${1:obj})',
  720. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  721. documentation: 'Returns true if obj is currently cached within the registry.',
  722. range: range
  723. },
  724. {
  725. label: 'write_clipboard',
  726. kind: monaco.languages.CompletionItemKind.Method,
  727. insertText: 'write_clipboard(${1:content})',
  728. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  729. documentation: 'Writes content to the current Windows clipboard.',
  730. range: range
  731. },
  732. {
  733. label: 'queue_on_teleport',
  734. kind: monaco.languages.CompletionItemKind.Method,
  735. insertText: 'queue_on_teleport(${1:code})',
  736. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  737. documentation: 'Executes code after player is teleported.',
  738. range: range
  739. },
  740. {
  741. label: 'protect_gui',
  742. kind: monaco.languages.CompletionItemKind.Method,
  743. insertText: 'protect_gui(${1:gui})',
  744. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  745. documentation: 'Protects your gui from recursive FindFirstChild-style attacks. After you call the function, recursive FFA calls from non-Synapse contexts will skip over your protected instances & all children of such instances.',
  746. range: range
  747. },
  748. {
  749. label: 'unprotect_gui',
  750. kind: monaco.languages.CompletionItemKind.Method,
  751. insertText: 'unprotect_gui(${1:gui})',
  752. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  753. documentation: 'Removes protection from the gui. Errors if gui isn\'t already protected.',
  754. range: range
  755. },
  756. {
  757. label: 'is_beta',
  758. kind: monaco.languages.CompletionItemKind.Method,
  759. insertText: 'is_beta()',
  760. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  761. documentation: 'Returns a bool indicating whether the user is using Synapse Beta or not.',
  762. range: range
  763. },
  764. {
  765. label: 'crypto',
  766. kind: monaco.languages.CompletionItemKind.Module,
  767. insertText: 'crypto',
  768. documentation: 'Alias for crypt.*. You can view the functions in the crypt section.',
  769. range: range
  770. },
  771. {
  772. label: 'request',
  773. kind: monaco.languages.CompletionItemKind.Method,
  774. insertText: 'request(${1:options})',
  775. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  776. documentation: 'Sends a http request with parameters in options.',
  777. range: range
  778. },
  779. {
  780. label: 'secure_call',
  781. kind: monaco.languages.CompletionItemKind.Method,
  782. insertText: 'secure_call(${1:func}, ${2:script}, ${3:args})',
  783. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  784. documentation: 'Spoofs caller environment and context when calling func with script\'s environment. You can pass as many arguments args as is required. Secure_call returns whatever the called function returns.',
  785. range: range
  786. },
  787. {
  788. label: 'create_secure_function',
  789. kind: monaco.languages.CompletionItemKind.Method,
  790. insertText: 'create_secure_function(${1:code})',
  791. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  792. documentation: 'Protects your code with secure function, making it impossible for others to alter or view your code. This function can only be used by users who have been given access.',
  793. range: range
  794. },
  795. {
  796. label: 'run_secure_function',
  797. kind: monaco.languages.CompletionItemKind.Method,
  798. insertText: 'run_secure_function(${1:code})',
  799. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  800. documentation: 'Runs code protected by secure function.',
  801. range: range
  802. },
  803. {
  804. label: 'secrun',
  805. kind: monaco.languages.CompletionItemKind.Method,
  806. insertText: 'secrun(${1:code})',
  807. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  808. documentation: 'Internal function used for whitelist security and bypassing luau when it was new. Back then Synapse had an exploit to disable luau.',
  809. range: range
  810. },
  811. {
  812. label: 'game',
  813. kind: monaco.languages.CompletionItemKind.Variable,
  814. insertText: 'game',
  815. documentation: 'Represents the Roblox game object.',
  816. range: range
  817. },
  818. {
  819. label: 'bit',
  820. kind: monaco.languages.CompletionItemKind.Variable,
  821. insertText: 'game',
  822. documentation: 'Represents the Roblox game object.',
  823. range: range
  824. },
  825. {
  826. label: 'bdiv',
  827. kind: monaco.languages.CompletionItemKind.Method,
  828. insertText: 'bdiv(${1:dividend}, ${2:divisor})',
  829. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  830. documentation: 'Returns the specified service from the game.',
  831. range: range
  832. },
  833. {
  834. label: 'bdiv',
  835. kind: monaco.languages.CompletionItemKind.Method,
  836. insertText: 'bdiv(${1:dividend}, ${2:divisor})',
  837. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  838. documentation: 'Divides dividend by divisor, remainder is not returned.',
  839. range: range
  840. },
  841. {
  842. label: 'badd',
  843. kind: monaco.languages.CompletionItemKind.Method,
  844. insertText: 'badd(${1:a}, ${2:b})',
  845. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  846. documentation: 'Adds a with b, allows overflows (unlike normal lua).',
  847. range: range
  848. },
  849. {
  850. label: 'bsub',
  851. kind: monaco.languages.CompletionItemKind.Method,
  852. insertText: 'bsub(${1:a}, ${2:b})',
  853. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  854. documentation: 'Subtracts a with b, allows overflows (unlike normal lua).',
  855. range: range
  856. },
  857. {
  858. label: 'band',
  859. kind: monaco.languages.CompletionItemKind.Method,
  860. insertText: 'band(${1:val}, ${2:by})',
  861. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  862. documentation: 'Does a logical AND (&) on val using by.',
  863. range: range
  864. },
  865. {
  866. label: 'bor',
  867. kind: monaco.languages.CompletionItemKind.Method,
  868. insertText: 'bor(${1:val}, ${2:by})',
  869. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  870. documentation: 'Does a logical OR (|) on val using by.',
  871. range: range
  872. },
  873. {
  874. label: 'bxor',
  875. kind: monaco.languages.CompletionItemKind.Method,
  876. insertText: 'bxor(${1:val}, ${2:by})',
  877. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  878. documentation: 'Does a logical XOR (⊕) on val using by.',
  879. range: range
  880. },
  881. {
  882. label: 'bnot',
  883. kind: monaco.languages.CompletionItemKind.Method,
  884. insertText: 'bnot(${1:val})',
  885. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  886. documentation: 'Does a logical NOT on val.',
  887. range: range
  888. },
  889. {
  890. label: 'bmul',
  891. kind: monaco.languages.CompletionItemKind.Method,
  892. insertText: 'bmul(${1:val}, ${2:by})',
  893. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  894. documentation: 'Multiplies val using by, allows overflows (unlike normal lua).',
  895. range: range
  896. },
  897. {
  898. label: 'bswap',
  899. kind: monaco.languages.CompletionItemKind.Method,
  900. insertText: 'bswap(${1:val})',
  901. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  902. documentation: 'Does a bitwise swap on val.',
  903. range: range
  904. },
  905. {
  906. label: 'ror',
  907. kind: monaco.languages.CompletionItemKind.Method,
  908. insertText: 'ror(${1:val}, ${2:by})',
  909. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  910. documentation: 'Rotates right val using by.',
  911. range: range
  912. },
  913. {
  914. label: 'rol',
  915. kind: monaco.languages.CompletionItemKind.Method,
  916. insertText: 'rol(${1:value}, ${2:shiftCount})',
  917. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  918. documentation: 'Returns the left rotated value.',
  919. range: range
  920. },
  921. {
  922. label: 'tohex',
  923. kind: monaco.languages.CompletionItemKind.Method,
  924. insertText: 'tohex(${1:val})',
  925. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  926. documentation: 'Converts val to a hex string.',
  927. range: range
  928. },
  929. {
  930. label: 'tobit',
  931. kind: monaco.languages.CompletionItemKind.Method,
  932. insertText: 'tobit(${1:val})',
  933. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  934. documentation: 'Converts val into proper form for bitwise operations.',
  935. range: range
  936. },
  937. {
  938. label: 'lshift',
  939. kind: monaco.languages.CompletionItemKind.Method,
  940. insertText: 'lshift(${1:val}, ${2:by})',
  941. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  942. documentation: 'Does a left shift on val using by.',
  943. range: range
  944. },
  945. {
  946. label: 'rshift',
  947. kind: monaco.languages.CompletionItemKind.Method,
  948. insertText: 'rshift(${1:val}, ${2:by})',
  949. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  950. documentation: 'Does a right shift on val using by.',
  951. range: range
  952. },
  953. {
  954. label: 'arshift',
  955. kind: monaco.languages.CompletionItemKind.Method,
  956. insertText: 'arshift(${1:value}, ${2:shiftCount})',
  957. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  958. documentation: 'Returns the arithmetically shifted value.',
  959. range: range
  960. },
  961. {
  962. label: 'encrypt',
  963. kind: monaco.languages.CompletionItemKind.Method,
  964. insertText: 'crypt.encrypt(${1:data}, ${2:key})',
  965. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  966. documentation: 'Encrypt\'s data with key.',
  967. range: range
  968. },
  969. {
  970. label: 'decrypt',
  971. kind: monaco.languages.CompletionItemKind.Method,
  972. insertText: 'crypt.decrypt(${1:data}, ${2:key})',
  973. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  974. documentation: 'Decrypt\'s data with key.',
  975. range: range
  976. },
  977. {
  978. label: 'base64.encode',
  979. kind: monaco.languages.CompletionItemKind.Method,
  980. insertText: 'crypt.base64.encode(${1:data})',
  981. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  982. documentation: 'Encodes data with base64.',
  983. range: range
  984. },
  985. {
  986. label: 'base64.decode',
  987. kind: monaco.languages.CompletionItemKind.Method,
  988. insertText: 'crypt.base64.decode(${1:data})',
  989. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  990. documentation: 'Decodes data with base64.',
  991. range: range
  992. },
  993. {
  994. label: 'hash',
  995. kind: monaco.languages.CompletionItemKind.Method,
  996. insertText: 'crypt.hash(${1:data})',
  997. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  998. documentation: 'Hashes data.',
  999. range: range
  1000. },
  1001. {
  1002. label: 'derive',
  1003. kind: monaco.languages.CompletionItemKind.Method,
  1004. insertText: 'crypt.derive(${1:value}, ${2:len})',
  1005. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1006. documentation: 'Derives a secret key from value with the length of len.',
  1007. range: range
  1008. },
  1009. {
  1010. label: 'random',
  1011. kind: monaco.languages.CompletionItemKind.Method,
  1012. insertText: 'crypt.random(${1:size})',
  1013. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1014. documentation: 'Generates a random string with size (cannot be negative or exceed 1024).',
  1015. range: range
  1016. },
  1017. {
  1018. label: 'custom.encrypt',
  1019. kind: monaco.languages.CompletionItemKind.Method,
  1020. insertText: 'crypt.custom.encrypt(${1:cipher}, ${2:data}, ${3:key}, ${4:iv})',
  1021. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1022. documentation: 'Encrypt\'s data with key using selected cipher and iv (initialization vector).',
  1023. range: range
  1024. },
  1025. {
  1026. label: 'custom.decrypt',
  1027. kind: monaco.languages.CompletionItemKind.Method,
  1028. insertText: 'crypt.custom.decrypt(${1:cipher}, ${2:data}, ${3:key}, ${4:iv})',
  1029. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1030. documentation: 'Decrypt\'s data with key using selected cipher and iv (initialization vector).',
  1031. range: range
  1032. },
  1033. {
  1034. label: 'custom.hash',
  1035. kind: monaco.languages.CompletionItemKind.Method,
  1036. insertText: 'crypt.custom.hash(${1:algorithm}, ${2:data})',
  1037. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1038. documentation: 'Hashes data with algorithm.',
  1039. range: range
  1040. },
  1041. {
  1042. label: 'getconstants',
  1043. kind: monaco.languages.CompletionItemKind.Method,
  1044. insertText: 'getconstants(${1:fi})',
  1045. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1046. documentation: 'Retrieve the constants in function fi or at level fi.',
  1047. range: range
  1048. },
  1049. {
  1050. label: 'getconstant',
  1051. kind: monaco.languages.CompletionItemKind.Method,
  1052. insertText: 'getconstant(${1:fi}, ${2:idx})',
  1053. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1054. documentation: 'Returns the constant at index idx in function fi or level fi.',
  1055. range: range
  1056. },
  1057. {
  1058. label: 'setconstant',
  1059. kind: monaco.languages.CompletionItemKind.Method,
  1060. insertText: 'setconstant(${1:fi}, ${2:consname}, ${3:value})',
  1061. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1062. documentation: 'Set constant consname to tuple value at level or function fi.',
  1063. range: range
  1064. },
  1065. {
  1066. label: 'getupvalues',
  1067. kind: monaco.languages.CompletionItemKind.Method,
  1068. insertText: 'getupvalues(${1:fi})',
  1069. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1070. documentation: 'Retrieve the upvalues in function fi or at level fi.',
  1071. range: range
  1072. },
  1073. {
  1074. label: 'getupvalue',
  1075. kind: monaco.languages.CompletionItemKind.Method,
  1076. insertText: 'getupvalue(${1:fi}, ${2:index})',
  1077. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1078. documentation: 'Returns the upvalue with name index in function or level fi.',
  1079. range: range
  1080. },
  1081. {
  1082. label: 'setupvalue',
  1083. kind: monaco.languages.CompletionItemKind.Method,
  1084. insertText: 'setupvalue(${1:fi}, ${2:index}, ${3:value})',
  1085. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1086. documentation: 'Set upvalue upvname to value value at level or function fi.',
  1087. range: range
  1088. },
  1089. {
  1090. label: 'getprotos',
  1091. kind: monaco.languages.CompletionItemKind.Method,
  1092. insertText: 'getprotos(${1:f})',
  1093. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1094. documentation: 'Returns a table containing the protos (local functions) of function f.',
  1095. range: range
  1096. },
  1097. {
  1098. label: 'getproto',
  1099. kind: monaco.languages.CompletionItemKind.Method,
  1100. insertText: 'getproto(${1:f}, ${2:index})',
  1101. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1102. documentation: 'Gets the proto (local function) at index index of function f.',
  1103. range: range
  1104. },
  1105. {
  1106. label: 'setproto',
  1107. kind: monaco.languages.CompletionItemKind.Method,
  1108. insertText: 'setproto(${1:fi}, ${2:index}, ${3:replacement})',
  1109. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1110. documentation: 'Replaces proto (local function) at index with function replacement at level or function fi.',
  1111. range: range
  1112. },
  1113. {
  1114. label: 'getstack',
  1115. kind: monaco.languages.CompletionItemKind.Method,
  1116. insertText: 'getstack(${1:fi})',
  1117. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1118. documentation: 'Gets the method stack at level or function fi.',
  1119. range: range
  1120. },
  1121. {
  1122. label: 'setstack',
  1123. kind: monaco.languages.CompletionItemKind.Method,
  1124. insertText: 'setstack(${1:fi}, ${2:indice}, ${3:value})',
  1125. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1126. documentation: 'Set the stack indice at indice to value value at level or function fi.',
  1127. range: range
  1128. },
  1129. {
  1130. label: 'setmetatable',
  1131. kind: monaco.languages.CompletionItemKind.Method,
  1132. insertText: 'setmetatable(${1:o}, ${2:mt})',
  1133. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1134. documentation: 'Set the metatable of o to mt.',
  1135. range: range
  1136. },
  1137. {
  1138. label: 'getregistry',
  1139. kind: monaco.languages.CompletionItemKind.Method,
  1140. insertText: 'getregistry()',
  1141. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1142. documentation: 'Returns the lua registry.',
  1143. range: range
  1144. },
  1145. {
  1146. label: 'getinfo',
  1147. kind: monaco.languages.CompletionItemKind.Method,
  1148. insertText: 'getinfo(${1:fi}, ${2:w})',
  1149. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1150. documentation: 'Returns a table of info pertaining to the lua function fi.',
  1151. range: range
  1152. },
  1153. {
  1154. label: 'setupvaluename',
  1155. kind: monaco.languages.CompletionItemKind.Method,
  1156. insertText: 'setupvaluename(${1:Name})',
  1157. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1158. documentation: 'Sets the upvalue name to Name.',
  1159. range: range
  1160. },
  1161. {
  1162. label: 'getlocals',
  1163. kind: monaco.languages.CompletionItemKind.Method,
  1164. insertText: 'getlocals(${1:lvl})',
  1165. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1166. documentation: 'Returns a table containing the upvalues at level lvl.',
  1167. range: range
  1168. },
  1169. {
  1170. label: 'getlocal',
  1171. kind: monaco.languages.CompletionItemKind.Method,
  1172. insertText: 'getlocal(${1:lvl}, ${2:localname})',
  1173. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1174. documentation: 'Returns the local with name localname in level lvl.',
  1175. range: range
  1176. },
  1177. {
  1178. label: 'setlocal',
  1179. kind: monaco.languages.CompletionItemKind.Method,
  1180. insertText: 'setlocal(${1:lvl}, ${2:localname}, ${3:value})',
  1181. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1182. documentation: 'Set local localname to value value at level lvl.',
  1183. range: range
  1184. },
  1185.  
  1186. {
  1187. label: 'GetService',
  1188. kind: monaco.languages.CompletionItemKind.Method,
  1189. insertText: 'GetService(${1:ServiceName})',
  1190. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1191. documentation: 'Returns the specified service from the game.',
  1192. range: range
  1193. },
  1194. {
  1195. label: 'WaitForChild',
  1196. kind: monaco.languages.CompletionItemKind.Method,
  1197. insertText: 'WaitForChild(${1:ServiceName})',
  1198. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1199. documentation: 'Returns the specified service from the game.',
  1200. range: range
  1201. },
  1202. {
  1203. label: 'FindFirstChild',
  1204. kind: monaco.languages.CompletionItemKind.Method,
  1205. insertText: 'FindFirstChild(${1:Child})',
  1206. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1207. documentation: 'Returns the first child from an object.',
  1208. range: range
  1209. },
  1210. {
  1211. label: 'FindFirstChildOfClass',
  1212. kind: monaco.languages.CompletionItemKind.Method,
  1213. insertText: 'FindFirstChildOfClass(${1:Child})',
  1214. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1215. documentation: 'Returns the first child of a class an object.',
  1216. range: range
  1217. },
  1218. {
  1219. label: 'Destroy',
  1220. kind: monaco.languages.CompletionItemKind.Method,
  1221. insertText: 'Destroy()',
  1222. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1223. documentation: 'Returns the specified service from the game.',
  1224. range: range
  1225. },
  1226. {
  1227. label: 'HttpGet',
  1228. kind: monaco.languages.CompletionItemKind.Method,
  1229. insertText: 'HttpGet(${1:url})',
  1230. insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
  1231. documentation: 'Returns the specified service from the game.',
  1232. range: range
  1233. },
  1234. {
  1235. label: 'workspace',
  1236. kind: monaco.languages.CompletionItemKind.Variable,
  1237. insertText: 'workspace',
  1238. documentation: 'Represents the Roblox workspace.',
  1239. range: range
  1240. }
  1241. ];
  1242.  
  1243. return { suggestions: suggestions };
  1244. }
  1245. });
  1246.  
  1247. editor = monaco.editor.create(document.getElementById('container'), {
  1248. value: `print("Welcome to Sensical-Ware!")`,
  1249. language: 'lua',
  1250. theme: 'custom-dark-bg',
  1251. automaticLayout: true
  1252. });
  1253.  
  1254. editor.onDidChangeModelContent(() => {
  1255. const content = editor.getValue();
  1256. window.chrome.webview.postMessage({ type: 'updateContent', content: content });
  1257. });
  1258.  
  1259. window.addEventListener('resize', () => {
  1260. editor.layout();
  1261. });
  1262. });
  1263.  
  1264. function setEditorText(newText) {
  1265. if (editor) {
  1266. editor.setValue(newText);
  1267. }
  1268. }
  1269.  
  1270. function getEditorText() {
  1271. if (editor) {
  1272. return editor.getValue();
  1273. }
  1274. return '';
  1275. }
  1276. </script>
  1277. </body>
  1278. </html>
Add Comment
Please, Sign In to add comment