powerquery.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Licensed under the MIT License. See License.txt in the project root for license information.
  4. *--------------------------------------------------------------------------------------------*/
  5. define('vs/basic-languages/powerquery/powerquery',["require", "exports"], function (require, exports) {
  6. "use strict";
  7. Object.defineProperty(exports, "__esModule", { value: true });
  8. exports.language = exports.conf = void 0;
  9. exports.conf = {
  10. comments: {
  11. lineComment: '//',
  12. blockComment: ['/*', '*/']
  13. },
  14. brackets: [
  15. ['[', ']'],
  16. ['(', ')'],
  17. ['{', '}']
  18. ],
  19. autoClosingPairs: [
  20. { open: '"', close: '"', notIn: ['string', 'comment', 'identifier'] },
  21. { open: '[', close: ']', notIn: ['string', 'comment', 'identifier'] },
  22. { open: '(', close: ')', notIn: ['string', 'comment', 'identifier'] },
  23. { open: '{', close: '}', notIn: ['string', 'comment', 'identifier'] }
  24. ]
  25. };
  26. exports.language = {
  27. defaultToken: '',
  28. tokenPostfix: '.pq',
  29. ignoreCase: false,
  30. brackets: [
  31. { open: '[', close: ']', token: 'delimiter.square' },
  32. { open: '{', close: '}', token: 'delimiter.brackets' },
  33. { open: '(', close: ')', token: 'delimiter.parenthesis' }
  34. ],
  35. operatorKeywords: ['and', 'not', 'or'],
  36. keywords: [
  37. 'as',
  38. 'each',
  39. 'else',
  40. 'error',
  41. 'false',
  42. 'if',
  43. 'in',
  44. 'is',
  45. 'let',
  46. 'meta',
  47. 'otherwise',
  48. 'section',
  49. 'shared',
  50. 'then',
  51. 'true',
  52. 'try',
  53. 'type'
  54. ],
  55. constructors: [
  56. '#binary',
  57. '#date',
  58. '#datetime',
  59. '#datetimezone',
  60. '#duration',
  61. '#table',
  62. '#time'
  63. ],
  64. constants: ['#infinity', '#nan', '#sections', '#shared'],
  65. typeKeywords: [
  66. 'action',
  67. 'any',
  68. 'anynonnull',
  69. 'none',
  70. 'null',
  71. 'logical',
  72. 'number',
  73. 'time',
  74. 'date',
  75. 'datetime',
  76. 'datetimezone',
  77. 'duration',
  78. 'text',
  79. 'binary',
  80. 'list',
  81. 'record',
  82. 'table',
  83. 'function'
  84. ],
  85. builtinFunctions: [
  86. 'Access.Database',
  87. 'Action.Return',
  88. 'Action.Sequence',
  89. 'Action.Try',
  90. 'ActiveDirectory.Domains',
  91. 'AdoDotNet.DataSource',
  92. 'AdoDotNet.Query',
  93. 'AdobeAnalytics.Cubes',
  94. 'AnalysisServices.Database',
  95. 'AnalysisServices.Databases',
  96. 'AzureStorage.BlobContents',
  97. 'AzureStorage.Blobs',
  98. 'AzureStorage.Tables',
  99. 'Binary.Buffer',
  100. 'Binary.Combine',
  101. 'Binary.Compress',
  102. 'Binary.Decompress',
  103. 'Binary.End',
  104. 'Binary.From',
  105. 'Binary.FromList',
  106. 'Binary.FromText',
  107. 'Binary.InferContentType',
  108. 'Binary.Length',
  109. 'Binary.ToList',
  110. 'Binary.ToText',
  111. 'BinaryFormat.7BitEncodedSignedInteger',
  112. 'BinaryFormat.7BitEncodedUnsignedInteger',
  113. 'BinaryFormat.Binary',
  114. 'BinaryFormat.Byte',
  115. 'BinaryFormat.ByteOrder',
  116. 'BinaryFormat.Choice',
  117. 'BinaryFormat.Decimal',
  118. 'BinaryFormat.Double',
  119. 'BinaryFormat.Group',
  120. 'BinaryFormat.Length',
  121. 'BinaryFormat.List',
  122. 'BinaryFormat.Null',
  123. 'BinaryFormat.Record',
  124. 'BinaryFormat.SignedInteger16',
  125. 'BinaryFormat.SignedInteger32',
  126. 'BinaryFormat.SignedInteger64',
  127. 'BinaryFormat.Single',
  128. 'BinaryFormat.Text',
  129. 'BinaryFormat.Transform',
  130. 'BinaryFormat.UnsignedInteger16',
  131. 'BinaryFormat.UnsignedInteger32',
  132. 'BinaryFormat.UnsignedInteger64',
  133. 'Byte.From',
  134. 'Character.FromNumber',
  135. 'Character.ToNumber',
  136. 'Combiner.CombineTextByDelimiter',
  137. 'Combiner.CombineTextByEachDelimiter',
  138. 'Combiner.CombineTextByLengths',
  139. 'Combiner.CombineTextByPositions',
  140. 'Combiner.CombineTextByRanges',
  141. 'Comparer.Equals',
  142. 'Comparer.FromCulture',
  143. 'Comparer.Ordinal',
  144. 'Comparer.OrdinalIgnoreCase',
  145. 'Csv.Document',
  146. 'Cube.AddAndExpandDimensionColumn',
  147. 'Cube.AddMeasureColumn',
  148. 'Cube.ApplyParameter',
  149. 'Cube.AttributeMemberId',
  150. 'Cube.AttributeMemberProperty',
  151. 'Cube.CollapseAndRemoveColumns',
  152. 'Cube.Dimensions',
  153. 'Cube.DisplayFolders',
  154. 'Cube.Measures',
  155. 'Cube.Parameters',
  156. 'Cube.Properties',
  157. 'Cube.PropertyKey',
  158. 'Cube.ReplaceDimensions',
  159. 'Cube.Transform',
  160. 'Currency.From',
  161. 'DB2.Database',
  162. 'Date.AddDays',
  163. 'Date.AddMonths',
  164. 'Date.AddQuarters',
  165. 'Date.AddWeeks',
  166. 'Date.AddYears',
  167. 'Date.Day',
  168. 'Date.DayOfWeek',
  169. 'Date.DayOfWeekName',
  170. 'Date.DayOfYear',
  171. 'Date.DaysInMonth',
  172. 'Date.EndOfDay',
  173. 'Date.EndOfMonth',
  174. 'Date.EndOfQuarter',
  175. 'Date.EndOfWeek',
  176. 'Date.EndOfYear',
  177. 'Date.From',
  178. 'Date.FromText',
  179. 'Date.IsInCurrentDay',
  180. 'Date.IsInCurrentMonth',
  181. 'Date.IsInCurrentQuarter',
  182. 'Date.IsInCurrentWeek',
  183. 'Date.IsInCurrentYear',
  184. 'Date.IsInNextDay',
  185. 'Date.IsInNextMonth',
  186. 'Date.IsInNextNDays',
  187. 'Date.IsInNextNMonths',
  188. 'Date.IsInNextNQuarters',
  189. 'Date.IsInNextNWeeks',
  190. 'Date.IsInNextNYears',
  191. 'Date.IsInNextQuarter',
  192. 'Date.IsInNextWeek',
  193. 'Date.IsInNextYear',
  194. 'Date.IsInPreviousDay',
  195. 'Date.IsInPreviousMonth',
  196. 'Date.IsInPreviousNDays',
  197. 'Date.IsInPreviousNMonths',
  198. 'Date.IsInPreviousNQuarters',
  199. 'Date.IsInPreviousNWeeks',
  200. 'Date.IsInPreviousNYears',
  201. 'Date.IsInPreviousQuarter',
  202. 'Date.IsInPreviousWeek',
  203. 'Date.IsInPreviousYear',
  204. 'Date.IsInYearToDate',
  205. 'Date.IsLeapYear',
  206. 'Date.Month',
  207. 'Date.MonthName',
  208. 'Date.QuarterOfYear',
  209. 'Date.StartOfDay',
  210. 'Date.StartOfMonth',
  211. 'Date.StartOfQuarter',
  212. 'Date.StartOfWeek',
  213. 'Date.StartOfYear',
  214. 'Date.ToRecord',
  215. 'Date.ToText',
  216. 'Date.WeekOfMonth',
  217. 'Date.WeekOfYear',
  218. 'Date.Year',
  219. 'DateTime.AddZone',
  220. 'DateTime.Date',
  221. 'DateTime.FixedLocalNow',
  222. 'DateTime.From',
  223. 'DateTime.FromFileTime',
  224. 'DateTime.FromText',
  225. 'DateTime.IsInCurrentHour',
  226. 'DateTime.IsInCurrentMinute',
  227. 'DateTime.IsInCurrentSecond',
  228. 'DateTime.IsInNextHour',
  229. 'DateTime.IsInNextMinute',
  230. 'DateTime.IsInNextNHours',
  231. 'DateTime.IsInNextNMinutes',
  232. 'DateTime.IsInNextNSeconds',
  233. 'DateTime.IsInNextSecond',
  234. 'DateTime.IsInPreviousHour',
  235. 'DateTime.IsInPreviousMinute',
  236. 'DateTime.IsInPreviousNHours',
  237. 'DateTime.IsInPreviousNMinutes',
  238. 'DateTime.IsInPreviousNSeconds',
  239. 'DateTime.IsInPreviousSecond',
  240. 'DateTime.LocalNow',
  241. 'DateTime.Time',
  242. 'DateTime.ToRecord',
  243. 'DateTime.ToText',
  244. 'DateTimeZone.FixedLocalNow',
  245. 'DateTimeZone.FixedUtcNow',
  246. 'DateTimeZone.From',
  247. 'DateTimeZone.FromFileTime',
  248. 'DateTimeZone.FromText',
  249. 'DateTimeZone.LocalNow',
  250. 'DateTimeZone.RemoveZone',
  251. 'DateTimeZone.SwitchZone',
  252. 'DateTimeZone.ToLocal',
  253. 'DateTimeZone.ToRecord',
  254. 'DateTimeZone.ToText',
  255. 'DateTimeZone.ToUtc',
  256. 'DateTimeZone.UtcNow',
  257. 'DateTimeZone.ZoneHours',
  258. 'DateTimeZone.ZoneMinutes',
  259. 'Decimal.From',
  260. 'Diagnostics.ActivityId',
  261. 'Diagnostics.Trace',
  262. 'DirectQueryCapabilities.From',
  263. 'Double.From',
  264. 'Duration.Days',
  265. 'Duration.From',
  266. 'Duration.FromText',
  267. 'Duration.Hours',
  268. 'Duration.Minutes',
  269. 'Duration.Seconds',
  270. 'Duration.ToRecord',
  271. 'Duration.ToText',
  272. 'Duration.TotalDays',
  273. 'Duration.TotalHours',
  274. 'Duration.TotalMinutes',
  275. 'Duration.TotalSeconds',
  276. 'Embedded.Value',
  277. 'Error.Record',
  278. 'Excel.CurrentWorkbook',
  279. 'Excel.Workbook',
  280. 'Exchange.Contents',
  281. 'Expression.Constant',
  282. 'Expression.Evaluate',
  283. 'Expression.Identifier',
  284. 'Facebook.Graph',
  285. 'File.Contents',
  286. 'Folder.Contents',
  287. 'Folder.Files',
  288. 'Function.From',
  289. 'Function.Invoke',
  290. 'Function.InvokeAfter',
  291. 'Function.IsDataSource',
  292. 'GoogleAnalytics.Accounts',
  293. 'Guid.From',
  294. 'HdInsight.Containers',
  295. 'HdInsight.Contents',
  296. 'HdInsight.Files',
  297. 'Hdfs.Contents',
  298. 'Hdfs.Files',
  299. 'Informix.Database',
  300. 'Int16.From',
  301. 'Int32.From',
  302. 'Int64.From',
  303. 'Int8.From',
  304. 'ItemExpression.From',
  305. 'Json.Document',
  306. 'Json.FromValue',
  307. 'Lines.FromBinary',
  308. 'Lines.FromText',
  309. 'Lines.ToBinary',
  310. 'Lines.ToText',
  311. 'List.Accumulate',
  312. 'List.AllTrue',
  313. 'List.Alternate',
  314. 'List.AnyTrue',
  315. 'List.Average',
  316. 'List.Buffer',
  317. 'List.Combine',
  318. 'List.Contains',
  319. 'List.ContainsAll',
  320. 'List.ContainsAny',
  321. 'List.Count',
  322. 'List.Covariance',
  323. 'List.DateTimeZones',
  324. 'List.DateTimes',
  325. 'List.Dates',
  326. 'List.Difference',
  327. 'List.Distinct',
  328. 'List.Durations',
  329. 'List.FindText',
  330. 'List.First',
  331. 'List.FirstN',
  332. 'List.Generate',
  333. 'List.InsertRange',
  334. 'List.Intersect',
  335. 'List.IsDistinct',
  336. 'List.IsEmpty',
  337. 'List.Last',
  338. 'List.LastN',
  339. 'List.MatchesAll',
  340. 'List.MatchesAny',
  341. 'List.Max',
  342. 'List.MaxN',
  343. 'List.Median',
  344. 'List.Min',
  345. 'List.MinN',
  346. 'List.Mode',
  347. 'List.Modes',
  348. 'List.NonNullCount',
  349. 'List.Numbers',
  350. 'List.PositionOf',
  351. 'List.PositionOfAny',
  352. 'List.Positions',
  353. 'List.Product',
  354. 'List.Random',
  355. 'List.Range',
  356. 'List.RemoveFirstN',
  357. 'List.RemoveItems',
  358. 'List.RemoveLastN',
  359. 'List.RemoveMatchingItems',
  360. 'List.RemoveNulls',
  361. 'List.RemoveRange',
  362. 'List.Repeat',
  363. 'List.ReplaceMatchingItems',
  364. 'List.ReplaceRange',
  365. 'List.ReplaceValue',
  366. 'List.Reverse',
  367. 'List.Select',
  368. 'List.Single',
  369. 'List.SingleOrDefault',
  370. 'List.Skip',
  371. 'List.Sort',
  372. 'List.StandardDeviation',
  373. 'List.Sum',
  374. 'List.Times',
  375. 'List.Transform',
  376. 'List.TransformMany',
  377. 'List.Union',
  378. 'List.Zip',
  379. 'Logical.From',
  380. 'Logical.FromText',
  381. 'Logical.ToText',
  382. 'MQ.Queue',
  383. 'MySQL.Database',
  384. 'Number.Abs',
  385. 'Number.Acos',
  386. 'Number.Asin',
  387. 'Number.Atan',
  388. 'Number.Atan2',
  389. 'Number.BitwiseAnd',
  390. 'Number.BitwiseNot',
  391. 'Number.BitwiseOr',
  392. 'Number.BitwiseShiftLeft',
  393. 'Number.BitwiseShiftRight',
  394. 'Number.BitwiseXor',
  395. 'Number.Combinations',
  396. 'Number.Cos',
  397. 'Number.Cosh',
  398. 'Number.Exp',
  399. 'Number.Factorial',
  400. 'Number.From',
  401. 'Number.FromText',
  402. 'Number.IntegerDivide',
  403. 'Number.IsEven',
  404. 'Number.IsNaN',
  405. 'Number.IsOdd',
  406. 'Number.Ln',
  407. 'Number.Log',
  408. 'Number.Log10',
  409. 'Number.Mod',
  410. 'Number.Permutations',
  411. 'Number.Power',
  412. 'Number.Random',
  413. 'Number.RandomBetween',
  414. 'Number.Round',
  415. 'Number.RoundAwayFromZero',
  416. 'Number.RoundDown',
  417. 'Number.RoundTowardZero',
  418. 'Number.RoundUp',
  419. 'Number.Sign',
  420. 'Number.Sin',
  421. 'Number.Sinh',
  422. 'Number.Sqrt',
  423. 'Number.Tan',
  424. 'Number.Tanh',
  425. 'Number.ToText',
  426. 'OData.Feed',
  427. 'Odbc.DataSource',
  428. 'Odbc.Query',
  429. 'OleDb.DataSource',
  430. 'OleDb.Query',
  431. 'Oracle.Database',
  432. 'Percentage.From',
  433. 'PostgreSQL.Database',
  434. 'RData.FromBinary',
  435. 'Record.AddField',
  436. 'Record.Combine',
  437. 'Record.Field',
  438. 'Record.FieldCount',
  439. 'Record.FieldNames',
  440. 'Record.FieldOrDefault',
  441. 'Record.FieldValues',
  442. 'Record.FromList',
  443. 'Record.FromTable',
  444. 'Record.HasFields',
  445. 'Record.RemoveFields',
  446. 'Record.RenameFields',
  447. 'Record.ReorderFields',
  448. 'Record.SelectFields',
  449. 'Record.ToList',
  450. 'Record.ToTable',
  451. 'Record.TransformFields',
  452. 'Replacer.ReplaceText',
  453. 'Replacer.ReplaceValue',
  454. 'RowExpression.Column',
  455. 'RowExpression.From',
  456. 'Salesforce.Data',
  457. 'Salesforce.Reports',
  458. 'SapBusinessWarehouse.Cubes',
  459. 'SapHana.Database',
  460. 'SharePoint.Contents',
  461. 'SharePoint.Files',
  462. 'SharePoint.Tables',
  463. 'Single.From',
  464. 'Soda.Feed',
  465. 'Splitter.SplitByNothing',
  466. 'Splitter.SplitTextByAnyDelimiter',
  467. 'Splitter.SplitTextByDelimiter',
  468. 'Splitter.SplitTextByEachDelimiter',
  469. 'Splitter.SplitTextByLengths',
  470. 'Splitter.SplitTextByPositions',
  471. 'Splitter.SplitTextByRanges',
  472. 'Splitter.SplitTextByRepeatedLengths',
  473. 'Splitter.SplitTextByWhitespace',
  474. 'Sql.Database',
  475. 'Sql.Databases',
  476. 'SqlExpression.SchemaFrom',
  477. 'SqlExpression.ToExpression',
  478. 'Sybase.Database',
  479. 'Table.AddColumn',
  480. 'Table.AddIndexColumn',
  481. 'Table.AddJoinColumn',
  482. 'Table.AddKey',
  483. 'Table.AggregateTableColumn',
  484. 'Table.AlternateRows',
  485. 'Table.Buffer',
  486. 'Table.Column',
  487. 'Table.ColumnCount',
  488. 'Table.ColumnNames',
  489. 'Table.ColumnsOfType',
  490. 'Table.Combine',
  491. 'Table.CombineColumns',
  492. 'Table.Contains',
  493. 'Table.ContainsAll',
  494. 'Table.ContainsAny',
  495. 'Table.DemoteHeaders',
  496. 'Table.Distinct',
  497. 'Table.DuplicateColumn',
  498. 'Table.ExpandListColumn',
  499. 'Table.ExpandRecordColumn',
  500. 'Table.ExpandTableColumn',
  501. 'Table.FillDown',
  502. 'Table.FillUp',
  503. 'Table.FilterWithDataTable',
  504. 'Table.FindText',
  505. 'Table.First',
  506. 'Table.FirstN',
  507. 'Table.FirstValue',
  508. 'Table.FromColumns',
  509. 'Table.FromList',
  510. 'Table.FromPartitions',
  511. 'Table.FromRecords',
  512. 'Table.FromRows',
  513. 'Table.FromValue',
  514. 'Table.Group',
  515. 'Table.HasColumns',
  516. 'Table.InsertRows',
  517. 'Table.IsDistinct',
  518. 'Table.IsEmpty',
  519. 'Table.Join',
  520. 'Table.Keys',
  521. 'Table.Last',
  522. 'Table.LastN',
  523. 'Table.MatchesAllRows',
  524. 'Table.MatchesAnyRows',
  525. 'Table.Max',
  526. 'Table.MaxN',
  527. 'Table.Min',
  528. 'Table.MinN',
  529. 'Table.NestedJoin',
  530. 'Table.Partition',
  531. 'Table.PartitionValues',
  532. 'Table.Pivot',
  533. 'Table.PositionOf',
  534. 'Table.PositionOfAny',
  535. 'Table.PrefixColumns',
  536. 'Table.Profile',
  537. 'Table.PromoteHeaders',
  538. 'Table.Range',
  539. 'Table.RemoveColumns',
  540. 'Table.RemoveFirstN',
  541. 'Table.RemoveLastN',
  542. 'Table.RemoveMatchingRows',
  543. 'Table.RemoveRows',
  544. 'Table.RemoveRowsWithErrors',
  545. 'Table.RenameColumns',
  546. 'Table.ReorderColumns',
  547. 'Table.Repeat',
  548. 'Table.ReplaceErrorValues',
  549. 'Table.ReplaceKeys',
  550. 'Table.ReplaceMatchingRows',
  551. 'Table.ReplaceRelationshipIdentity',
  552. 'Table.ReplaceRows',
  553. 'Table.ReplaceValue',
  554. 'Table.ReverseRows',
  555. 'Table.RowCount',
  556. 'Table.Schema',
  557. 'Table.SelectColumns',
  558. 'Table.SelectRows',
  559. 'Table.SelectRowsWithErrors',
  560. 'Table.SingleRow',
  561. 'Table.Skip',
  562. 'Table.Sort',
  563. 'Table.SplitColumn',
  564. 'Table.ToColumns',
  565. 'Table.ToList',
  566. 'Table.ToRecords',
  567. 'Table.ToRows',
  568. 'Table.TransformColumnNames',
  569. 'Table.TransformColumnTypes',
  570. 'Table.TransformColumns',
  571. 'Table.TransformRows',
  572. 'Table.Transpose',
  573. 'Table.Unpivot',
  574. 'Table.UnpivotOtherColumns',
  575. 'Table.View',
  576. 'Table.ViewFunction',
  577. 'TableAction.DeleteRows',
  578. 'TableAction.InsertRows',
  579. 'TableAction.UpdateRows',
  580. 'Tables.GetRelationships',
  581. 'Teradata.Database',
  582. 'Text.AfterDelimiter',
  583. 'Text.At',
  584. 'Text.BeforeDelimiter',
  585. 'Text.BetweenDelimiters',
  586. 'Text.Clean',
  587. 'Text.Combine',
  588. 'Text.Contains',
  589. 'Text.End',
  590. 'Text.EndsWith',
  591. 'Text.Format',
  592. 'Text.From',
  593. 'Text.FromBinary',
  594. 'Text.Insert',
  595. 'Text.Length',
  596. 'Text.Lower',
  597. 'Text.Middle',
  598. 'Text.NewGuid',
  599. 'Text.PadEnd',
  600. 'Text.PadStart',
  601. 'Text.PositionOf',
  602. 'Text.PositionOfAny',
  603. 'Text.Proper',
  604. 'Text.Range',
  605. 'Text.Remove',
  606. 'Text.RemoveRange',
  607. 'Text.Repeat',
  608. 'Text.Replace',
  609. 'Text.ReplaceRange',
  610. 'Text.Select',
  611. 'Text.Split',
  612. 'Text.SplitAny',
  613. 'Text.Start',
  614. 'Text.StartsWith',
  615. 'Text.ToBinary',
  616. 'Text.ToList',
  617. 'Text.Trim',
  618. 'Text.TrimEnd',
  619. 'Text.TrimStart',
  620. 'Text.Upper',
  621. 'Time.EndOfHour',
  622. 'Time.From',
  623. 'Time.FromText',
  624. 'Time.Hour',
  625. 'Time.Minute',
  626. 'Time.Second',
  627. 'Time.StartOfHour',
  628. 'Time.ToRecord',
  629. 'Time.ToText',
  630. 'Type.AddTableKey',
  631. 'Type.ClosedRecord',
  632. 'Type.Facets',
  633. 'Type.ForFunction',
  634. 'Type.ForRecord',
  635. 'Type.FunctionParameters',
  636. 'Type.FunctionRequiredParameters',
  637. 'Type.FunctionReturn',
  638. 'Type.Is',
  639. 'Type.IsNullable',
  640. 'Type.IsOpenRecord',
  641. 'Type.ListItem',
  642. 'Type.NonNullable',
  643. 'Type.OpenRecord',
  644. 'Type.RecordFields',
  645. 'Type.ReplaceFacets',
  646. 'Type.ReplaceTableKeys',
  647. 'Type.TableColumn',
  648. 'Type.TableKeys',
  649. 'Type.TableRow',
  650. 'Type.TableSchema',
  651. 'Type.Union',
  652. 'Uri.BuildQueryString',
  653. 'Uri.Combine',
  654. 'Uri.EscapeDataString',
  655. 'Uri.Parts',
  656. 'Value.Add',
  657. 'Value.As',
  658. 'Value.Compare',
  659. 'Value.Divide',
  660. 'Value.Equals',
  661. 'Value.Firewall',
  662. 'Value.FromText',
  663. 'Value.Is',
  664. 'Value.Metadata',
  665. 'Value.Multiply',
  666. 'Value.NativeQuery',
  667. 'Value.NullableEquals',
  668. 'Value.RemoveMetadata',
  669. 'Value.ReplaceMetadata',
  670. 'Value.ReplaceType',
  671. 'Value.Subtract',
  672. 'Value.Type',
  673. 'ValueAction.NativeStatement',
  674. 'ValueAction.Replace',
  675. 'Variable.Value',
  676. 'Web.Contents',
  677. 'Web.Page',
  678. 'WebAction.Request',
  679. 'Xml.Document',
  680. 'Xml.Tables'
  681. ],
  682. builtinConstants: [
  683. 'BinaryEncoding.Base64',
  684. 'BinaryEncoding.Hex',
  685. 'BinaryOccurrence.Optional',
  686. 'BinaryOccurrence.Repeating',
  687. 'BinaryOccurrence.Required',
  688. 'ByteOrder.BigEndian',
  689. 'ByteOrder.LittleEndian',
  690. 'Compression.Deflate',
  691. 'Compression.GZip',
  692. 'CsvStyle.QuoteAfterDelimiter',
  693. 'CsvStyle.QuoteAlways',
  694. 'Culture.Current',
  695. 'Day.Friday',
  696. 'Day.Monday',
  697. 'Day.Saturday',
  698. 'Day.Sunday',
  699. 'Day.Thursday',
  700. 'Day.Tuesday',
  701. 'Day.Wednesday',
  702. 'ExtraValues.Error',
  703. 'ExtraValues.Ignore',
  704. 'ExtraValues.List',
  705. 'GroupKind.Global',
  706. 'GroupKind.Local',
  707. 'JoinAlgorithm.Dynamic',
  708. 'JoinAlgorithm.LeftHash',
  709. 'JoinAlgorithm.LeftIndex',
  710. 'JoinAlgorithm.PairwiseHash',
  711. 'JoinAlgorithm.RightHash',
  712. 'JoinAlgorithm.RightIndex',
  713. 'JoinAlgorithm.SortMerge',
  714. 'JoinKind.FullOuter',
  715. 'JoinKind.Inner',
  716. 'JoinKind.LeftAnti',
  717. 'JoinKind.LeftOuter',
  718. 'JoinKind.RightAnti',
  719. 'JoinKind.RightOuter',
  720. 'JoinSide.Left',
  721. 'JoinSide.Right',
  722. 'MissingField.Error',
  723. 'MissingField.Ignore',
  724. 'MissingField.UseNull',
  725. 'Number.E',
  726. 'Number.Epsilon',
  727. 'Number.NaN',
  728. 'Number.NegativeInfinity',
  729. 'Number.PI',
  730. 'Number.PositiveInfinity',
  731. 'Occurrence.All',
  732. 'Occurrence.First',
  733. 'Occurrence.Last',
  734. 'Occurrence.Optional',
  735. 'Occurrence.Repeating',
  736. 'Occurrence.Required',
  737. 'Order.Ascending',
  738. 'Order.Descending',
  739. 'Precision.Decimal',
  740. 'Precision.Double',
  741. 'QuoteStyle.Csv',
  742. 'QuoteStyle.None',
  743. 'RelativePosition.FromEnd',
  744. 'RelativePosition.FromStart',
  745. 'RoundingMode.AwayFromZero',
  746. 'RoundingMode.Down',
  747. 'RoundingMode.ToEven',
  748. 'RoundingMode.TowardZero',
  749. 'RoundingMode.Up',
  750. 'SapHanaDistribution.All',
  751. 'SapHanaDistribution.Connection',
  752. 'SapHanaDistribution.Off',
  753. 'SapHanaDistribution.Statement',
  754. 'SapHanaRangeOperator.Equals',
  755. 'SapHanaRangeOperator.GreaterThan',
  756. 'SapHanaRangeOperator.GreaterThanOrEquals',
  757. 'SapHanaRangeOperator.LessThan',
  758. 'SapHanaRangeOperator.LessThanOrEquals',
  759. 'SapHanaRangeOperator.NotEquals',
  760. 'TextEncoding.Ascii',
  761. 'TextEncoding.BigEndianUnicode',
  762. 'TextEncoding.Unicode',
  763. 'TextEncoding.Utf16',
  764. 'TextEncoding.Utf8',
  765. 'TextEncoding.Windows',
  766. 'TraceLevel.Critical',
  767. 'TraceLevel.Error',
  768. 'TraceLevel.Information',
  769. 'TraceLevel.Verbose',
  770. 'TraceLevel.Warning',
  771. 'WebMethod.Delete',
  772. 'WebMethod.Get',
  773. 'WebMethod.Head',
  774. 'WebMethod.Patch',
  775. 'WebMethod.Post',
  776. 'WebMethod.Put'
  777. ],
  778. builtinTypes: [
  779. 'Action.Type',
  780. 'Any.Type',
  781. 'Binary.Type',
  782. 'BinaryEncoding.Type',
  783. 'BinaryOccurrence.Type',
  784. 'Byte.Type',
  785. 'ByteOrder.Type',
  786. 'Character.Type',
  787. 'Compression.Type',
  788. 'CsvStyle.Type',
  789. 'Currency.Type',
  790. 'Date.Type',
  791. 'DateTime.Type',
  792. 'DateTimeZone.Type',
  793. 'Day.Type',
  794. 'Decimal.Type',
  795. 'Double.Type',
  796. 'Duration.Type',
  797. 'ExtraValues.Type',
  798. 'Function.Type',
  799. 'GroupKind.Type',
  800. 'Guid.Type',
  801. 'Int16.Type',
  802. 'Int32.Type',
  803. 'Int64.Type',
  804. 'Int8.Type',
  805. 'JoinAlgorithm.Type',
  806. 'JoinKind.Type',
  807. 'JoinSide.Type',
  808. 'List.Type',
  809. 'Logical.Type',
  810. 'MissingField.Type',
  811. 'None.Type',
  812. 'Null.Type',
  813. 'Number.Type',
  814. 'Occurrence.Type',
  815. 'Order.Type',
  816. 'Password.Type',
  817. 'Percentage.Type',
  818. 'Precision.Type',
  819. 'QuoteStyle.Type',
  820. 'Record.Type',
  821. 'RelativePosition.Type',
  822. 'RoundingMode.Type',
  823. 'SapHanaDistribution.Type',
  824. 'SapHanaRangeOperator.Type',
  825. 'Single.Type',
  826. 'Table.Type',
  827. 'Text.Type',
  828. 'TextEncoding.Type',
  829. 'Time.Type',
  830. 'TraceLevel.Type',
  831. 'Type.Type',
  832. 'Uri.Type',
  833. 'WebMethod.Type'
  834. ],
  835. tokenizer: {
  836. root: [
  837. // quoted identifier
  838. [/#"[\w \.]+"/, 'identifier.quote'],
  839. // numbers
  840. [/\d*\.\d+([eE][\-+]?\d+)?/, 'number.float'],
  841. [/0[xX][0-9a-fA-F]+/, 'number.hex'],
  842. [/\d+([eE][\-+]?\d+)?/, 'number'],
  843. // keywords
  844. [
  845. /(#?[a-z]+)\b/,
  846. {
  847. cases: {
  848. '@typeKeywords': 'type',
  849. '@keywords': 'keyword',
  850. '@constants': 'constant',
  851. '@constructors': 'constructor',
  852. '@operatorKeywords': 'operators',
  853. '@default': 'identifier'
  854. }
  855. }
  856. ],
  857. // built-in types
  858. [
  859. /\b([A-Z][a-zA-Z0-9]+\.Type)\b/,
  860. {
  861. cases: {
  862. '@builtinTypes': 'type',
  863. '@default': 'identifier'
  864. }
  865. }
  866. ],
  867. // other built-ins
  868. [
  869. /\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/,
  870. {
  871. cases: {
  872. '@builtinFunctions': 'keyword.function',
  873. '@builtinConstants': 'constant',
  874. '@default': 'identifier'
  875. }
  876. }
  877. ],
  878. // other identifiers
  879. [/\b([a-zA-Z_][\w\.]*)\b/, 'identifier'],
  880. { include: '@whitespace' },
  881. { include: '@comments' },
  882. { include: '@strings' },
  883. [/[{}()\[\]]/, '@brackets'],
  884. [/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/, 'operators'],
  885. [/[,;]/, 'delimiter']
  886. ],
  887. whitespace: [[/\s+/, 'white']],
  888. comments: [
  889. ['\\/\\*', 'comment', '@comment'],
  890. ['\\/\\/+.*', 'comment']
  891. ],
  892. comment: [
  893. ['\\*\\/', 'comment', '@pop'],
  894. ['.', 'comment']
  895. ],
  896. strings: [['"', 'string', '@string']],
  897. string: [
  898. ['""', 'string.escape'],
  899. ['"', 'string', '@pop'],
  900. ['.', 'string']
  901. ]
  902. }
  903. };
  904. });