* add package.json Signed-off-by: Jess Frazelle <github@jessfraz.com> initial run; Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> more fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> clientsidescne Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> paths Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> fix styles Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> combine Signed-off-by: Jess Frazelle <github@jessfraz.com> eslint rule Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> my ocd Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> constants file Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> no more import sceneInfra Signed-off-by: Jess Frazelle <github@jessfraz.com> updates Signed-off-by: Jess Frazelle <github@jessfraz.com> try fix circular import Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
// Base CodeMirror language support for kcl.
|
|
import {
|
|
LRLanguage,
|
|
LanguageSupport,
|
|
continuedIndent,
|
|
delimitedIndent,
|
|
foldInside,
|
|
foldNodeProp,
|
|
indentNodeProp,
|
|
} from '@codemirror/language'
|
|
|
|
// @ts-ignore: No types available
|
|
import { parser } from './kcl.grammar'
|
|
|
|
export const KclLanguage = LRLanguage.define({
|
|
name: 'kcl',
|
|
parser: parser.configure({
|
|
props: [
|
|
indentNodeProp.add({
|
|
Body: delimitedIndent({ closing: '}' }),
|
|
BlockComment: () => null,
|
|
'Statement Property': continuedIndent({ except: /^{/ }),
|
|
}),
|
|
foldNodeProp.add({
|
|
'Body ArrayExpression ObjectExpression': foldInside,
|
|
BlockComment(tree) {
|
|
return { from: tree.from + 2, to: tree.to - 2 }
|
|
},
|
|
PipeExpression(tree) {
|
|
return { from: tree.firstChild!.to, to: tree.to }
|
|
},
|
|
}),
|
|
],
|
|
}),
|
|
languageData: {
|
|
commentTokens: { line: '//', block: { open: '/*', close: '*/' } },
|
|
},
|
|
})
|
|
|
|
export function kcl() {
|
|
return new LanguageSupport(KclLanguage)
|
|
}
|