From c7d009d27b483ec27fab0243a04ef4329035246d Mon Sep 17 00:00:00 2001 From: Kirill Date: Thu, 4 Jan 2024 15:41:26 +0300 Subject: [PATCH] icb --- core/icB.SemanticProvider.ts | 125 ++++ core/icX.SemanticProvider.ts | 2 + core/main.ts | 23 +- icB.language-configuration.json | 96 ++++ package.json | 30 +- sampleWorkspace/.MD | 37 -- sampleWorkspace/.editorconfig | 795 -------------------------- sampleWorkspace/.vscode/launch.json | 13 - sampleWorkspace/.vscode/settings.json | 6 - sampleWorkspace/test.ic10 | 5 - sampleWorkspace/test.icX | 3 +- sampleWorkspace/test.icb | 2 + sampleWorkspace/test.icx.ic10 | 2 + syntaxes/icB.tmLanguage.json | 255 +++++---- 14 files changed, 421 insertions(+), 973 deletions(-) create mode 100644 core/icB.SemanticProvider.ts create mode 100644 icB.language-configuration.json delete mode 100644 sampleWorkspace/.MD delete mode 100644 sampleWorkspace/.editorconfig delete mode 100644 sampleWorkspace/.vscode/launch.json delete mode 100644 sampleWorkspace/.vscode/settings.json delete mode 100644 sampleWorkspace/test.ic10 create mode 100644 sampleWorkspace/test.icb create mode 100644 sampleWorkspace/test.icx.ic10 diff --git a/core/icB.SemanticProvider.ts b/core/icB.SemanticProvider.ts new file mode 100644 index 0000000..6af41be --- /dev/null +++ b/core/icB.SemanticProvider.ts @@ -0,0 +1,125 @@ +import vscode, {CancellationToken, ProviderResult, SemanticTokens, TextDocument} from "vscode" +import * as fs from "fs"; + +// import * as fs from "fs"; + +interface IParsedToken { + line: number; + startCharacter: number; + length: number; + tokenType: number; + tokenModifier?: number +} + +const tokenTypes = new Map() +const tokenModifiers = new Map() +export const legendIcB = (function () { + const tokenTypesLegend = [ + "parameter", "keyword", "enumMember", + "property", "function", + "variable", "label" + ] + tokenTypesLegend.forEach((tokenType, index) => tokenTypes.set(tokenType, index)) + + const tokenModifiersLegend = [ + "declaration", "readonly" + ] + tokenModifiersLegend.forEach((tokenModifier, index) => tokenModifiers.set(tokenModifier, index)) + + return new vscode.SemanticTokensLegend(tokenTypesLegend, tokenModifiersLegend) +})() + +export class IcBSemanticTokensProvider implements vscode.DocumentSemanticTokensProvider { + + provideDocumentSemanticTokens(document: TextDocument, token: CancellationToken): ProviderResult { + const allTokens = this._parseText(document.getText()) + const builder = new vscode.SemanticTokensBuilder(legendIcB) + allTokens.forEach((token) => { + builder.push( + token.line, token.startCharacter, token.length, + token.tokenType, + ) + }) + return builder.build() + } + + _parseText(text: string): IParsedToken[] { + try { + let r: IParsedToken[] = [] + const lines = text.split(/\r\n|\r|\n/) + const vars: string[] = [] + const keywords: string[] = [] + const constants: string[] = [] + + lines.forEach((line) => { + let match + try { + let re = /\b(var|alias)\s+([\w\d]+).*/ + if (re.test(line)) { + match = re.exec(line) + vars.push(match[2]) + } + re = /\b(const|define)\s+([\w\d]+).*/ + if (re.test(line)) { + match = re.exec(line) + constants.push(match[2]) + } + re = /([\w\d]+):/ + if (re.test(line)) { + match = re.exec(line) + keywords.push(match[1]) + } + } catch (e) { + } + }) + console.table(vars) + fs.writeFileSync('C:\\Projects\\IC\\vscode-stationeers-ic10\\core\\Test.json',JSON.stringify(vars)) + + lines.forEach((line, index) => { + try { + for (let value of vars) { + r = this.pushToken(value, line, index, 0, null, r) + } + for (let value of keywords) { + r = this.pushToken(value, line, index, 1, null, r) + } + for (let value of constants) { + r = this.pushToken(value, line, index, 2, 1, r) + } + } catch (e) { + } + }) + return r + } catch (e) { + } + return [] + } + + pushToken(search, line, index, tokenType, tokenModifier, out: IParsedToken[]) { + const find = new RegExp("\\b" + search + "\\b", "y") + try { + for (let i = 0; i < line.length; i++) { + if (line[i] == "#") { + break + } + find.lastIndex = i + const match = find.exec(line) + if (match && match[0] == search) { + const a: IParsedToken = { + line: index, + startCharacter: match.index, + length: search.length, + tokenType: tokenType, + } + if (tokenModifier !== null) { + a.tokenModifier = tokenModifier + } + out.push(a) + } + } + } catch (e) { + } + return out + } + +} diff --git a/core/icX.SemanticProvider.ts b/core/icX.SemanticProvider.ts index 0a3c5b7..20f1a49 100644 --- a/core/icX.SemanticProvider.ts +++ b/core/icX.SemanticProvider.ts @@ -1,4 +1,5 @@ import vscode, {CancellationToken, ProviderResult, SemanticTokens, TextDocument} from "vscode" +import fs from "fs"; // import * as fs from "fs"; @@ -93,6 +94,7 @@ export class IcxSemanticTokensProvider implements vscode.DocumentSemanticTokensP } pushToken(search, line, index, tokenType, tokenModifier, out: IParsedToken[]) { + const find = new RegExp("\\b" + search + "\\b", "y") try { for (let i = 0; i < line.length; i++) { diff --git a/core/main.ts b/core/main.ts index 501e0e6..f3fd01f 100644 --- a/core/main.ts +++ b/core/main.ts @@ -5,6 +5,7 @@ import {Ic10Vscode} from "./ic10-vscode" import path from "path" import {ic10Formatter} from "./ic10.formatter" import {IcxSemanticTokensProvider, legend} from "./icX.SemanticProvider" +import {IcBSemanticTokensProvider, legendIcB} from "./icB.SemanticProvider" import {Ic10SidebarViewProvider} from "./sidebarView" import {ic10Diagnostics} from "./ic10.diagnostics" import {icX} from "icx-compiler" @@ -15,6 +16,7 @@ import {IcXVscode} from "./icX-vscode" import InterpreterIc10 from "ic10" import {Ic10Error} from "ic10/src/Ic10Error" import {parseEnvironment} from "../debugger/utils"; +import fs from "fs"; const LOCALE_KEY: string = vscode.env.language @@ -22,6 +24,7 @@ const ic10_hover = new Ic10Vscode() const icX_hover = new IcXVscode() export const LANG_IC10 = "ic10" export const LANG_ICX = "icX" +export const LANG_ICB = "icB" const interpreterIc10 = new InterpreterIc10(null) let interpreterIc10State = 0 let leftCodeLength: vscode.StatusBarItem @@ -278,12 +281,12 @@ html,body,iframe{ } function semantic(ctx: vscode.ExtensionContext) { - // console.time('semantic') + console.time('semantic') try { ctx.subscriptions.push(vscode.languages.registerDocumentSemanticTokensProvider( - {language: LANG_IC10, scheme: "file"}, - new IcxSemanticTokensProvider, - legend + {language: LANG_ICB, scheme: "file"}, + new IcBSemanticTokensProvider, + legendIcB ) ) ctx.subscriptions.push(vscode.languages.registerDocumentSemanticTokensProvider( @@ -293,9 +296,9 @@ function semantic(ctx: vscode.ExtensionContext) { ) ) } catch (e) { - // console.error(e) + console.error(e) } - // console.timeEnd('semantic') + console.timeEnd('semantic') } function view(ctx: vscode.ExtensionContext) { @@ -358,7 +361,7 @@ function statusBar(ctx: vscode.ExtensionContext) { // console.timeEnd('statusBar') } -function ChangeActiveTextEditor(editor): void { +function ChangeActiveTextEditor(editor:vscode.TextEditor): void { if (vscode.window.activeTextEditor.document.languageId == LANG_IC10 || vscode.window.activeTextEditor.document.languageId == LANG_ICX) { onChangeCallbacks.ChangeActiveTextEditor.forEach((e) => { e.call(null, editor) @@ -366,7 +369,7 @@ function ChangeActiveTextEditor(editor): void { } } -function ChangeTextEditorSelection(editor): void { +function ChangeTextEditorSelection(editor:vscode.TextEditorSelectionChangeEvent): void { if (vscode.window.activeTextEditor.document.languageId == LANG_IC10 || vscode.window.activeTextEditor.document.languageId == LANG_ICX) { onChangeCallbacks.ChangeTextEditorSelection.forEach((e) => { @@ -383,7 +386,7 @@ function SaveTextDocument(): void { } } -function onChange(ctx) { +function onChange(ctx:vscode.ExtensionContext) { ctx.subscriptions.push(vscode.window.onDidChangeActiveTextEditor(ChangeActiveTextEditor)) ctx.subscriptions.push(vscode.workspace.onDidSaveTextDocument(SaveTextDocument)) ctx.subscriptions.push(vscode.window.onDidChangeTextEditorSelection(ChangeTextEditorSelection)) @@ -404,7 +407,7 @@ function getNumberLeftLines(): Array | false { } } -function diagnostic(context) { +function diagnostic(context:vscode.ExtensionContext) { // console.time('diagnostic') try { diff --git a/icB.language-configuration.json b/icB.language-configuration.json new file mode 100644 index 0000000..acdf8a9 --- /dev/null +++ b/icB.language-configuration.json @@ -0,0 +1,96 @@ +{ + "comments": { + "lineComment": "#" + }, + "brackets": [ + [ + "IF", + "ENDIF" + ], + [ + "{", + "}" + ], + [ + "{", + "}" + ], + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ] + ], + "autoClosingPairs": [ + + { + "open": "{", + "close": "}" + }, + { + "open": "[", + "close": "]" + }, + { + "open": "(", + "close": ")" + }, + { + "open": "'", + "close": "'", + "notIn": [ + "string", + "comment" + ] + }, + { + "open": "\"", + "close": "\"", + "notIn": [ + "string" + ] + }, + { + "open": "`", + "close": "`", + "notIn": [ + "string", + "comment" + ] + }, + ], + "autoCloseBefore": ";:.,=}])>` \n\t", + "surroundingPairs": [ + [ + "{", + "}" + ], + [ + "[", + "]" + ], + [ + "(", + ")" + ], + [ + "'", + "'" + ], + [ + "\"", + "\"" + ], + [ + "`", + "`" + ] + ] +} diff --git a/package.json b/package.json index fba6d2b..27ff6f8 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,9 @@ "contributes": { "files.associations": { "*.ic10": "ic10", - "*.icX": "icX" + "*.icX": "icX", + "*.icb": "icB", + "*.icB": "icB" }, "languages": [ { @@ -68,6 +70,16 @@ "icX" ], "configuration": "./icX.language-configuration.json" + }, + { + "id": "icB", + "aliases": [ + "icB" + ], + "extensions": [ + "icb" + ], + "configuration": "./icB.language-configuration.json" } ], "grammars": [ @@ -80,6 +92,11 @@ "language": "icX", "scopeName": "source.icX", "path": "./syntaxes/icX.tmLanguage.json" + }, + { + "language": "icB", + "scopeName": "source.icB", + "path": "./syntaxes/icB.tmLanguage.json" } ], "debuggers": [ @@ -252,14 +269,6 @@ } ] }, - "configurationDefaults": { - "ic10": { - "editor.semanticHighlighting.enabled": true - }, - "icX": { - "editor.semanticHighlighting.enabled": true - } - }, "views": { "explorer": [ { @@ -278,6 +287,9 @@ }, "icX": { "editor.semanticHighlighting.enabled": true + }, + "icB": { + "editor.semanticHighlighting.enabled": true } }, "dependencies": { diff --git a/sampleWorkspace/.MD b/sampleWorkspace/.MD deleted file mode 100644 index 3a7ece7..0000000 --- a/sampleWorkspace/.MD +++ /dev/null @@ -1,37 +0,0 @@ -Итак, теперь к почти любому скрипту должен прилагаться `файл окружения` - -`файл окружения` доступен на 3 диалектах `.env`, `.yaml`, `.toml` - -`env` - самый простой заполняйте по формуле `d{n}={хеш или имя}` - -Остальное гуглите сами :) - -файлы окружения можно создавать 2 способами - -1) создать с именем `.env` или `.yaml` или `.toml`в той-же папке, что и скрипт -2) создать с именем скрипта и расширением `.env` или `.yaml` или `.toml`в той-же папке, что и скрипт - -вот примеры `файлов окружения` - -```.dotenv -d0=-463037670 -d1=StructureAdvancedPackagingMachine -``` - -```toml -[d0] -PrefabHash=-463037670 -Setting=18 -[d1] -PrefabHash="StructureAdvancedPackagingMachine" -Setting=18 -``` - -```yml -d0: - - PrefabHash: -463037670 - - Setting: 10 -d1: - - PrefabHash: StructureAdvancedPackagingMachine - - Setting: 18 -``` diff --git a/sampleWorkspace/.editorconfig b/sampleWorkspace/.editorconfig deleted file mode 100644 index 5df5c55..0000000 --- a/sampleWorkspace/.editorconfig +++ /dev/null @@ -1,795 +0,0 @@ -[*] -charset = utf-8 -end_of_line = crlf -indent_size = 4 -indent_style = space -insert_final_newline = true -max_line_length = 120 -tab_width = 4 -trim_trailing_whitespace = true -ij_continuation_indent_size = 8 -ij_formatter_off_tag = @formatter:off -ij_formatter_on_tag = @formatter:on -ij_formatter_tags_enabled = true -ij_smart_tabs = false -ij_visual_guides = none -ij_wrap_on_typing = false - -[*.blade.php] -ij_blade_keep_indents_on_empty_lines = false - -[*.css] -ij_css_align_closing_brace_with_properties = false -ij_css_blank_lines_around_nested_selector = 1 -ij_css_blank_lines_between_blocks = 1 -ij_css_block_comment_add_space = false -ij_css_brace_placement = end_of_line -ij_css_enforce_quotes_on_format = false -ij_css_hex_color_long_format = false -ij_css_hex_color_lower_case = false -ij_css_hex_color_short_format = false -ij_css_hex_color_upper_case = false -ij_css_keep_blank_lines_in_code = 2 -ij_css_keep_indents_on_empty_lines = false -ij_css_keep_single_line_blocks = false -ij_css_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow -ij_css_space_after_colon = true -ij_css_space_before_opening_brace = true -ij_css_use_double_quotes = true -ij_css_value_alignment = do_not_align - -[*.feature] -indent_size = 2 -ij_gherkin_keep_indents_on_empty_lines = false - -[*.less] -indent_size = 2 -ij_less_align_closing_brace_with_properties = false -ij_less_blank_lines_around_nested_selector = 1 -ij_less_blank_lines_between_blocks = 1 -ij_less_block_comment_add_space = false -ij_less_brace_placement = 0 -ij_less_enforce_quotes_on_format = false -ij_less_hex_color_long_format = false -ij_less_hex_color_lower_case = false -ij_less_hex_color_short_format = false -ij_less_hex_color_upper_case = false -ij_less_keep_blank_lines_in_code = 2 -ij_less_keep_indents_on_empty_lines = false -ij_less_keep_single_line_blocks = false -ij_less_line_comment_add_space = false -ij_less_line_comment_at_first_column = false -ij_less_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow -ij_less_space_after_colon = true -ij_less_space_before_opening_brace = true -ij_less_use_double_quotes = true -ij_less_value_alignment = 0 - -[*.sass] -indent_size = 2 -ij_sass_align_closing_brace_with_properties = false -ij_sass_blank_lines_around_nested_selector = 1 -ij_sass_blank_lines_between_blocks = 1 -ij_sass_brace_placement = 0 -ij_sass_enforce_quotes_on_format = false -ij_sass_hex_color_long_format = false -ij_sass_hex_color_lower_case = false -ij_sass_hex_color_short_format = false -ij_sass_hex_color_upper_case = false -ij_sass_keep_blank_lines_in_code = 2 -ij_sass_keep_indents_on_empty_lines = false -ij_sass_keep_single_line_blocks = false -ij_sass_line_comment_add_space = false -ij_sass_line_comment_at_first_column = false -ij_sass_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow -ij_sass_space_after_colon = true -ij_sass_space_before_opening_brace = true -ij_sass_use_double_quotes = true -ij_sass_value_alignment = 0 - -[*.scss] -indent_size = 2 -ij_scss_align_closing_brace_with_properties = false -ij_scss_blank_lines_around_nested_selector = 1 -ij_scss_blank_lines_between_blocks = 1 -ij_scss_block_comment_add_space = false -ij_scss_brace_placement = 0 -ij_scss_enforce_quotes_on_format = false -ij_scss_hex_color_long_format = false -ij_scss_hex_color_lower_case = false -ij_scss_hex_color_short_format = false -ij_scss_hex_color_upper_case = false -ij_scss_keep_blank_lines_in_code = 2 -ij_scss_keep_indents_on_empty_lines = false -ij_scss_keep_single_line_blocks = false -ij_scss_line_comment_add_space = false -ij_scss_line_comment_at_first_column = false -ij_scss_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow -ij_scss_space_after_colon = true -ij_scss_space_before_opening_brace = true -ij_scss_use_double_quotes = true -ij_scss_value_alignment = 0 - -[*.twig] -ij_twig_keep_indents_on_empty_lines = false -ij_twig_spaces_inside_comments_delimiters = true -ij_twig_spaces_inside_delimiters = true -ij_twig_spaces_inside_variable_delimiters = true - -[.editorconfig] -ij_editorconfig_align_group_field_declarations = false -ij_editorconfig_space_after_colon = false -ij_editorconfig_space_after_comma = true -ij_editorconfig_space_before_colon = false -ij_editorconfig_space_before_comma = false -ij_editorconfig_spaces_around_assignment_operators = true - -[{*.ad,*.adoc,*.asciidoc,.asciidoctorconfig}] -ij_asciidoc_blank_lines_after_header = 1 -ij_asciidoc_blank_lines_keep_after_header = 1 -ij_asciidoc_formatting_enabled = true -ij_asciidoc_one_sentence_per_line = true - -[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.rng,*.tld,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul,phpunit.xml.dist}] -ij_xml_align_attributes = true -ij_xml_align_text = false -ij_xml_attribute_wrap = normal -ij_xml_block_comment_add_space = false -ij_xml_block_comment_at_first_column = true -ij_xml_keep_blank_lines = 2 -ij_xml_keep_indents_on_empty_lines = false -ij_xml_keep_line_breaks = true -ij_xml_keep_line_breaks_in_text = true -ij_xml_keep_whitespaces = false -ij_xml_keep_whitespaces_around_cdata = preserve -ij_xml_keep_whitespaces_inside_cdata = false -ij_xml_line_comment_at_first_column = true -ij_xml_space_after_tag_name = false -ij_xml_space_around_equals_in_attribute = false -ij_xml_space_inside_empty_tag = false -ij_xml_text_wrap = normal - -[{*.ats,*.cts,*.mts,*.ts}] -ij_continuation_indent_size = 4 -ij_typescript_align_imports = false -ij_typescript_align_multiline_array_initializer_expression = false -ij_typescript_align_multiline_binary_operation = false -ij_typescript_align_multiline_chained_methods = false -ij_typescript_align_multiline_extends_list = false -ij_typescript_align_multiline_for = true -ij_typescript_align_multiline_parameters = true -ij_typescript_align_multiline_parameters_in_calls = false -ij_typescript_align_multiline_ternary_operation = false -ij_typescript_align_object_properties = 0 -ij_typescript_align_union_types = false -ij_typescript_align_var_statements = 0 -ij_typescript_array_initializer_new_line_after_left_brace = false -ij_typescript_array_initializer_right_brace_on_new_line = false -ij_typescript_array_initializer_wrap = off -ij_typescript_assignment_wrap = off -ij_typescript_binary_operation_sign_on_next_line = false -ij_typescript_binary_operation_wrap = off -ij_typescript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/** -ij_typescript_blank_lines_after_imports = 1 -ij_typescript_blank_lines_around_class = 1 -ij_typescript_blank_lines_around_field = 0 -ij_typescript_blank_lines_around_field_in_interface = 0 -ij_typescript_blank_lines_around_function = 1 -ij_typescript_blank_lines_around_method = 1 -ij_typescript_blank_lines_around_method_in_interface = 1 -ij_typescript_block_brace_style = end_of_line -ij_typescript_block_comment_add_space = false -ij_typescript_block_comment_at_first_column = true -ij_typescript_call_parameters_new_line_after_left_paren = false -ij_typescript_call_parameters_right_paren_on_new_line = false -ij_typescript_call_parameters_wrap = off -ij_typescript_catch_on_new_line = false -ij_typescript_chained_call_dot_on_new_line = true -ij_typescript_class_brace_style = end_of_line -ij_typescript_comma_on_new_line = false -ij_typescript_do_while_brace_force = never -ij_typescript_else_on_new_line = false -ij_typescript_enforce_trailing_comma = keep -ij_typescript_enum_constants_wrap = on_every_item -ij_typescript_extends_keyword_wrap = off -ij_typescript_extends_list_wrap = off -ij_typescript_field_prefix = _ -ij_typescript_file_name_style = relaxed -ij_typescript_finally_on_new_line = false -ij_typescript_for_brace_force = never -ij_typescript_for_statement_new_line_after_left_paren = false -ij_typescript_for_statement_right_paren_on_new_line = false -ij_typescript_for_statement_wrap = off -ij_typescript_force_quote_style = false -ij_typescript_force_semicolon_style = false -ij_typescript_function_expression_brace_style = end_of_line -ij_typescript_if_brace_force = never -ij_typescript_import_merge_members = global -ij_typescript_import_prefer_absolute_path = global -ij_typescript_import_sort_members = true -ij_typescript_import_sort_module_name = false -ij_typescript_import_use_node_resolution = true -ij_typescript_imports_wrap = on_every_item -ij_typescript_indent_case_from_switch = true -ij_typescript_indent_chained_calls = true -ij_typescript_indent_package_children = 0 -ij_typescript_jsdoc_include_types = false -ij_typescript_jsx_attribute_value = braces -ij_typescript_keep_blank_lines_in_code = 2 -ij_typescript_keep_first_column_comment = true -ij_typescript_keep_indents_on_empty_lines = false -ij_typescript_keep_line_breaks = true -ij_typescript_keep_simple_blocks_in_one_line = false -ij_typescript_keep_simple_methods_in_one_line = false -ij_typescript_line_comment_add_space = true -ij_typescript_line_comment_at_first_column = false -ij_typescript_method_brace_style = end_of_line -ij_typescript_method_call_chain_wrap = off -ij_typescript_method_parameters_new_line_after_left_paren = false -ij_typescript_method_parameters_right_paren_on_new_line = false -ij_typescript_method_parameters_wrap = off -ij_typescript_object_literal_wrap = on_every_item -ij_typescript_object_types_wrap = on_every_item -ij_typescript_parentheses_expression_new_line_after_left_paren = false -ij_typescript_parentheses_expression_right_paren_on_new_line = false -ij_typescript_place_assignment_sign_on_next_line = false -ij_typescript_prefer_as_type_cast = false -ij_typescript_prefer_explicit_types_function_expression_returns = false -ij_typescript_prefer_explicit_types_function_returns = false -ij_typescript_prefer_explicit_types_vars_fields = false -ij_typescript_prefer_parameters_wrap = false -ij_typescript_reformat_c_style_comments = false -ij_typescript_space_after_colon = true -ij_typescript_space_after_comma = true -ij_typescript_space_after_dots_in_rest_parameter = false -ij_typescript_space_after_generator_mult = true -ij_typescript_space_after_property_colon = true -ij_typescript_space_after_quest = true -ij_typescript_space_after_type_colon = true -ij_typescript_space_after_unary_not = false -ij_typescript_space_before_async_arrow_lparen = true -ij_typescript_space_before_catch_keyword = true -ij_typescript_space_before_catch_left_brace = true -ij_typescript_space_before_catch_parentheses = true -ij_typescript_space_before_class_lbrace = true -ij_typescript_space_before_class_left_brace = true -ij_typescript_space_before_colon = true -ij_typescript_space_before_comma = false -ij_typescript_space_before_do_left_brace = true -ij_typescript_space_before_else_keyword = true -ij_typescript_space_before_else_left_brace = true -ij_typescript_space_before_finally_keyword = true -ij_typescript_space_before_finally_left_brace = true -ij_typescript_space_before_for_left_brace = true -ij_typescript_space_before_for_parentheses = true -ij_typescript_space_before_for_semicolon = false -ij_typescript_space_before_function_left_parenth = true -ij_typescript_space_before_generator_mult = false -ij_typescript_space_before_if_left_brace = true -ij_typescript_space_before_if_parentheses = true -ij_typescript_space_before_method_call_parentheses = false -ij_typescript_space_before_method_left_brace = true -ij_typescript_space_before_method_parentheses = false -ij_typescript_space_before_property_colon = false -ij_typescript_space_before_quest = true -ij_typescript_space_before_switch_left_brace = true -ij_typescript_space_before_switch_parentheses = true -ij_typescript_space_before_try_left_brace = true -ij_typescript_space_before_type_colon = false -ij_typescript_space_before_unary_not = false -ij_typescript_space_before_while_keyword = true -ij_typescript_space_before_while_left_brace = true -ij_typescript_space_before_while_parentheses = true -ij_typescript_spaces_around_additive_operators = true -ij_typescript_spaces_around_arrow_function_operator = true -ij_typescript_spaces_around_assignment_operators = true -ij_typescript_spaces_around_bitwise_operators = true -ij_typescript_spaces_around_equality_operators = true -ij_typescript_spaces_around_logical_operators = true -ij_typescript_spaces_around_multiplicative_operators = true -ij_typescript_spaces_around_relational_operators = true -ij_typescript_spaces_around_shift_operators = true -ij_typescript_spaces_around_unary_operator = false -ij_typescript_spaces_within_array_initializer_brackets = false -ij_typescript_spaces_within_brackets = false -ij_typescript_spaces_within_catch_parentheses = false -ij_typescript_spaces_within_for_parentheses = false -ij_typescript_spaces_within_if_parentheses = false -ij_typescript_spaces_within_imports = false -ij_typescript_spaces_within_interpolation_expressions = false -ij_typescript_spaces_within_method_call_parentheses = false -ij_typescript_spaces_within_method_parentheses = false -ij_typescript_spaces_within_object_literal_braces = false -ij_typescript_spaces_within_object_type_braces = true -ij_typescript_spaces_within_parentheses = false -ij_typescript_spaces_within_switch_parentheses = false -ij_typescript_spaces_within_type_assertion = false -ij_typescript_spaces_within_union_types = true -ij_typescript_spaces_within_while_parentheses = false -ij_typescript_special_else_if_treatment = true -ij_typescript_ternary_operation_signs_on_next_line = false -ij_typescript_ternary_operation_wrap = off -ij_typescript_union_types_wrap = on_every_item -ij_typescript_use_chained_calls_group_indents = false -ij_typescript_use_double_quotes = true -ij_typescript_use_explicit_js_extension = auto -ij_typescript_use_path_mapping = always -ij_typescript_use_public_modifier = false -ij_typescript_use_semicolon_after_statement = true -ij_typescript_var_declaration_wrap = normal -ij_typescript_while_brace_force = never -ij_typescript_while_on_new_line = false -ij_typescript_wrap_comments = false - -[{*.bash,*.sh,*.zsh}] -indent_size = 2 -tab_width = 2 -ij_shell_binary_ops_start_line = false -ij_shell_keep_column_alignment_padding = false -ij_shell_minify_program = false -ij_shell_redirect_followed_by_space = false -ij_shell_switch_cases_indented = false -ij_shell_use_unix_line_separator = true - -[{*.cjs,*.js}] -ij_continuation_indent_size = 4 -ij_javascript_align_imports = false -ij_javascript_align_multiline_array_initializer_expression = false -ij_javascript_align_multiline_binary_operation = false -ij_javascript_align_multiline_chained_methods = false -ij_javascript_align_multiline_extends_list = false -ij_javascript_align_multiline_for = true -ij_javascript_align_multiline_parameters = true -ij_javascript_align_multiline_parameters_in_calls = false -ij_javascript_align_multiline_ternary_operation = false -ij_javascript_align_object_properties = 0 -ij_javascript_align_union_types = false -ij_javascript_align_var_statements = 0 -ij_javascript_array_initializer_new_line_after_left_brace = false -ij_javascript_array_initializer_right_brace_on_new_line = false -ij_javascript_array_initializer_wrap = off -ij_javascript_assignment_wrap = off -ij_javascript_binary_operation_sign_on_next_line = false -ij_javascript_binary_operation_wrap = off -ij_javascript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/** -ij_javascript_blank_lines_after_imports = 1 -ij_javascript_blank_lines_around_class = 1 -ij_javascript_blank_lines_around_field = 0 -ij_javascript_blank_lines_around_function = 1 -ij_javascript_blank_lines_around_method = 1 -ij_javascript_block_brace_style = end_of_line -ij_javascript_block_comment_add_space = false -ij_javascript_block_comment_at_first_column = true -ij_javascript_call_parameters_new_line_after_left_paren = false -ij_javascript_call_parameters_right_paren_on_new_line = false -ij_javascript_call_parameters_wrap = off -ij_javascript_catch_on_new_line = false -ij_javascript_chained_call_dot_on_new_line = true -ij_javascript_class_brace_style = end_of_line -ij_javascript_comma_on_new_line = false -ij_javascript_do_while_brace_force = never -ij_javascript_else_on_new_line = false -ij_javascript_enforce_trailing_comma = keep -ij_javascript_extends_keyword_wrap = off -ij_javascript_extends_list_wrap = off -ij_javascript_field_prefix = _ -ij_javascript_file_name_style = relaxed -ij_javascript_finally_on_new_line = false -ij_javascript_for_brace_force = never -ij_javascript_for_statement_new_line_after_left_paren = false -ij_javascript_for_statement_right_paren_on_new_line = false -ij_javascript_for_statement_wrap = off -ij_javascript_force_quote_style = false -ij_javascript_force_semicolon_style = false -ij_javascript_function_expression_brace_style = end_of_line -ij_javascript_if_brace_force = never -ij_javascript_import_merge_members = global -ij_javascript_import_prefer_absolute_path = global -ij_javascript_import_sort_members = true -ij_javascript_import_sort_module_name = false -ij_javascript_import_use_node_resolution = true -ij_javascript_imports_wrap = on_every_item -ij_javascript_indent_case_from_switch = true -ij_javascript_indent_chained_calls = true -ij_javascript_indent_package_children = 0 -ij_javascript_jsx_attribute_value = braces -ij_javascript_keep_blank_lines_in_code = 2 -ij_javascript_keep_first_column_comment = true -ij_javascript_keep_indents_on_empty_lines = false -ij_javascript_keep_line_breaks = true -ij_javascript_keep_simple_blocks_in_one_line = false -ij_javascript_keep_simple_methods_in_one_line = false -ij_javascript_line_comment_add_space = true -ij_javascript_line_comment_at_first_column = false -ij_javascript_method_brace_style = end_of_line -ij_javascript_method_call_chain_wrap = off -ij_javascript_method_parameters_new_line_after_left_paren = false -ij_javascript_method_parameters_right_paren_on_new_line = false -ij_javascript_method_parameters_wrap = off -ij_javascript_object_literal_wrap = on_every_item -ij_javascript_object_types_wrap = on_every_item -ij_javascript_parentheses_expression_new_line_after_left_paren = false -ij_javascript_parentheses_expression_right_paren_on_new_line = false -ij_javascript_place_assignment_sign_on_next_line = false -ij_javascript_prefer_as_type_cast = false -ij_javascript_prefer_explicit_types_function_expression_returns = false -ij_javascript_prefer_explicit_types_function_returns = false -ij_javascript_prefer_explicit_types_vars_fields = false -ij_javascript_prefer_parameters_wrap = false -ij_javascript_reformat_c_style_comments = false -ij_javascript_space_after_colon = true -ij_javascript_space_after_comma = true -ij_javascript_space_after_dots_in_rest_parameter = false -ij_javascript_space_after_generator_mult = true -ij_javascript_space_after_property_colon = true -ij_javascript_space_after_quest = true -ij_javascript_space_after_type_colon = true -ij_javascript_space_after_unary_not = false -ij_javascript_space_before_async_arrow_lparen = true -ij_javascript_space_before_catch_keyword = true -ij_javascript_space_before_catch_left_brace = true -ij_javascript_space_before_catch_parentheses = true -ij_javascript_space_before_class_lbrace = true -ij_javascript_space_before_class_left_brace = true -ij_javascript_space_before_colon = true -ij_javascript_space_before_comma = false -ij_javascript_space_before_do_left_brace = true -ij_javascript_space_before_else_keyword = true -ij_javascript_space_before_else_left_brace = true -ij_javascript_space_before_finally_keyword = true -ij_javascript_space_before_finally_left_brace = true -ij_javascript_space_before_for_left_brace = true -ij_javascript_space_before_for_parentheses = true -ij_javascript_space_before_for_semicolon = false -ij_javascript_space_before_function_left_parenth = true -ij_javascript_space_before_generator_mult = false -ij_javascript_space_before_if_left_brace = true -ij_javascript_space_before_if_parentheses = true -ij_javascript_space_before_method_call_parentheses = false -ij_javascript_space_before_method_left_brace = true -ij_javascript_space_before_method_parentheses = false -ij_javascript_space_before_property_colon = false -ij_javascript_space_before_quest = true -ij_javascript_space_before_switch_left_brace = true -ij_javascript_space_before_switch_parentheses = true -ij_javascript_space_before_try_left_brace = true -ij_javascript_space_before_type_colon = false -ij_javascript_space_before_unary_not = false -ij_javascript_space_before_while_keyword = true -ij_javascript_space_before_while_left_brace = true -ij_javascript_space_before_while_parentheses = true -ij_javascript_spaces_around_additive_operators = true -ij_javascript_spaces_around_arrow_function_operator = true -ij_javascript_spaces_around_assignment_operators = true -ij_javascript_spaces_around_bitwise_operators = true -ij_javascript_spaces_around_equality_operators = true -ij_javascript_spaces_around_logical_operators = true -ij_javascript_spaces_around_multiplicative_operators = true -ij_javascript_spaces_around_relational_operators = true -ij_javascript_spaces_around_shift_operators = true -ij_javascript_spaces_around_unary_operator = false -ij_javascript_spaces_within_array_initializer_brackets = false -ij_javascript_spaces_within_brackets = false -ij_javascript_spaces_within_catch_parentheses = false -ij_javascript_spaces_within_for_parentheses = false -ij_javascript_spaces_within_if_parentheses = false -ij_javascript_spaces_within_imports = false -ij_javascript_spaces_within_interpolation_expressions = false -ij_javascript_spaces_within_method_call_parentheses = false -ij_javascript_spaces_within_method_parentheses = false -ij_javascript_spaces_within_object_literal_braces = false -ij_javascript_spaces_within_object_type_braces = true -ij_javascript_spaces_within_parentheses = false -ij_javascript_spaces_within_switch_parentheses = false -ij_javascript_spaces_within_type_assertion = false -ij_javascript_spaces_within_union_types = true -ij_javascript_spaces_within_while_parentheses = false -ij_javascript_special_else_if_treatment = true -ij_javascript_ternary_operation_signs_on_next_line = false -ij_javascript_ternary_operation_wrap = off -ij_javascript_union_types_wrap = on_every_item -ij_javascript_use_chained_calls_group_indents = false -ij_javascript_use_double_quotes = true -ij_javascript_use_explicit_js_extension = auto -ij_javascript_use_path_mapping = always -ij_javascript_use_public_modifier = false -ij_javascript_use_semicolon_after_statement = true -ij_javascript_var_declaration_wrap = normal -ij_javascript_while_brace_force = never -ij_javascript_while_on_new_line = false -ij_javascript_wrap_comments = false - -[{*.class,*.ctp,*.disabled,*.hphp,*.inc,*.module,*.php,*.php4,*.php5,*.phtml,*.resolver,exportusershandlerfield}] -ij_continuation_indent_size = 4 -ij_php_align_assignments = false -ij_php_align_class_constants = false -ij_php_align_enum_cases = false -ij_php_align_group_field_declarations = false -ij_php_align_inline_comments = false -ij_php_align_key_value_pairs = false -ij_php_align_match_arm_bodies = false -ij_php_align_multiline_array_initializer_expression = false -ij_php_align_multiline_binary_operation = false -ij_php_align_multiline_chained_methods = false -ij_php_align_multiline_extends_list = false -ij_php_align_multiline_for = true -ij_php_align_multiline_parameters = true -ij_php_align_multiline_parameters_in_calls = false -ij_php_align_multiline_ternary_operation = false -ij_php_align_named_arguments = false -ij_php_align_phpdoc_comments = false -ij_php_align_phpdoc_param_names = false -ij_php_anonymous_brace_style = end_of_line -ij_php_api_weight = 28 -ij_php_array_initializer_new_line_after_left_brace = false -ij_php_array_initializer_right_brace_on_new_line = false -ij_php_array_initializer_wrap = off -ij_php_assignment_wrap = off -ij_php_attributes_wrap = off -ij_php_author_weight = 28 -ij_php_binary_operation_sign_on_next_line = false -ij_php_binary_operation_wrap = off -ij_php_blank_lines_after_class_header = 0 -ij_php_blank_lines_after_function = 1 -ij_php_blank_lines_after_imports = 1 -ij_php_blank_lines_after_opening_tag = 0 -ij_php_blank_lines_after_package = 0 -ij_php_blank_lines_around_class = 1 -ij_php_blank_lines_around_constants = 0 -ij_php_blank_lines_around_enum_cases = 0 -ij_php_blank_lines_around_field = 0 -ij_php_blank_lines_around_method = 1 -ij_php_blank_lines_before_class_end = 0 -ij_php_blank_lines_before_imports = 1 -ij_php_blank_lines_before_method_body = 0 -ij_php_blank_lines_before_package = 1 -ij_php_blank_lines_before_return_statement = 0 -ij_php_blank_lines_between_imports = 0 -ij_php_block_brace_style = end_of_line -ij_php_call_parameters_new_line_after_left_paren = false -ij_php_call_parameters_right_paren_on_new_line = false -ij_php_call_parameters_wrap = off -ij_php_catch_on_new_line = false -ij_php_category_weight = 28 -ij_php_class_brace_style = next_line -ij_php_comma_after_last_argument = false -ij_php_comma_after_last_array_element = false -ij_php_comma_after_last_closure_use_var = false -ij_php_comma_after_last_match_arm = false -ij_php_comma_after_last_parameter = false -ij_php_concat_spaces = true -ij_php_copyright_weight = 28 -ij_php_deprecated_weight = 28 -ij_php_do_while_brace_force = never -ij_php_else_if_style = as_is -ij_php_else_on_new_line = false -ij_php_example_weight = 28 -ij_php_extends_keyword_wrap = off -ij_php_extends_list_wrap = off -ij_php_fields_default_visibility = private -ij_php_filesource_weight = 28 -ij_php_finally_on_new_line = false -ij_php_for_brace_force = never -ij_php_for_statement_new_line_after_left_paren = false -ij_php_for_statement_right_paren_on_new_line = false -ij_php_for_statement_wrap = off -ij_php_force_empty_methods_in_one_line = false -ij_php_force_short_declaration_array_style = false -ij_php_getters_setters_naming_style = camel_case -ij_php_getters_setters_order_style = getters_first -ij_php_global_weight = 28 -ij_php_group_use_wrap = on_every_item -ij_php_if_brace_force = never -ij_php_if_lparen_on_next_line = false -ij_php_if_rparen_on_next_line = false -ij_php_ignore_weight = 28 -ij_php_import_sorting = alphabetic -ij_php_indent_break_from_case = true -ij_php_indent_case_from_switch = true -ij_php_indent_code_in_php_tags = false -ij_php_internal_weight = 28 -ij_php_keep_blank_lines_after_lbrace = 2 -ij_php_keep_blank_lines_before_right_brace = 2 -ij_php_keep_blank_lines_in_code = 2 -ij_php_keep_blank_lines_in_declarations = 2 -ij_php_keep_control_statement_in_one_line = true -ij_php_keep_first_column_comment = true -ij_php_keep_indents_on_empty_lines = false -ij_php_keep_line_breaks = true -ij_php_keep_rparen_and_lbrace_on_one_line = false -ij_php_keep_simple_classes_in_one_line = false -ij_php_keep_simple_methods_in_one_line = false -ij_php_lambda_brace_style = end_of_line -ij_php_license_weight = 28 -ij_php_line_comment_add_space = false -ij_php_line_comment_at_first_column = true -ij_php_link_weight = 28 -ij_php_lower_case_boolean_const = false -ij_php_lower_case_keywords = true -ij_php_lower_case_null_const = false -ij_php_method_brace_style = next_line -ij_php_method_call_chain_wrap = off -ij_php_method_parameters_new_line_after_left_paren = false -ij_php_method_parameters_right_paren_on_new_line = false -ij_php_method_parameters_wrap = off -ij_php_method_weight = 28 -ij_php_modifier_list_wrap = false -ij_php_multiline_chained_calls_semicolon_on_new_line = false -ij_php_namespace_brace_style = 1 -ij_php_new_line_after_php_opening_tag = false -ij_php_null_type_position = in_the_end -ij_php_package_weight = 28 -ij_php_param_weight = 0 -ij_php_parameters_attributes_wrap = off -ij_php_parentheses_expression_new_line_after_left_paren = false -ij_php_parentheses_expression_right_paren_on_new_line = false -ij_php_phpdoc_blank_line_before_tags = false -ij_php_phpdoc_blank_lines_around_parameters = false -ij_php_phpdoc_keep_blank_lines = true -ij_php_phpdoc_param_spaces_between_name_and_description = 1 -ij_php_phpdoc_param_spaces_between_tag_and_type = 1 -ij_php_phpdoc_param_spaces_between_type_and_name = 1 -ij_php_phpdoc_use_fqcn = false -ij_php_phpdoc_wrap_long_lines = false -ij_php_place_assignment_sign_on_next_line = false -ij_php_place_parens_for_constructor = 0 -ij_php_property_read_weight = 28 -ij_php_property_weight = 28 -ij_php_property_write_weight = 28 -ij_php_return_type_on_new_line = false -ij_php_return_weight = 1 -ij_php_see_weight = 28 -ij_php_since_weight = 28 -ij_php_sort_phpdoc_elements = true -ij_php_space_after_colon = true -ij_php_space_after_colon_in_enum_backed_type = true -ij_php_space_after_colon_in_named_argument = true -ij_php_space_after_colon_in_return_type = true -ij_php_space_after_comma = true -ij_php_space_after_for_semicolon = true -ij_php_space_after_quest = true -ij_php_space_after_type_cast = false -ij_php_space_after_unary_not = false -ij_php_space_before_array_initializer_left_brace = false -ij_php_space_before_catch_keyword = true -ij_php_space_before_catch_left_brace = true -ij_php_space_before_catch_parentheses = true -ij_php_space_before_class_left_brace = true -ij_php_space_before_closure_left_parenthesis = true -ij_php_space_before_colon = true -ij_php_space_before_colon_in_enum_backed_type = false -ij_php_space_before_colon_in_named_argument = false -ij_php_space_before_colon_in_return_type = false -ij_php_space_before_comma = false -ij_php_space_before_do_left_brace = true -ij_php_space_before_else_keyword = true -ij_php_space_before_else_left_brace = true -ij_php_space_before_finally_keyword = true -ij_php_space_before_finally_left_brace = true -ij_php_space_before_for_left_brace = true -ij_php_space_before_for_parentheses = true -ij_php_space_before_for_semicolon = false -ij_php_space_before_if_left_brace = true -ij_php_space_before_if_parentheses = true -ij_php_space_before_method_call_parentheses = false -ij_php_space_before_method_left_brace = true -ij_php_space_before_method_parentheses = false -ij_php_space_before_quest = true -ij_php_space_before_short_closure_left_parenthesis = false -ij_php_space_before_switch_left_brace = true -ij_php_space_before_switch_parentheses = true -ij_php_space_before_try_left_brace = true -ij_php_space_before_unary_not = false -ij_php_space_before_while_keyword = true -ij_php_space_before_while_left_brace = true -ij_php_space_before_while_parentheses = true -ij_php_space_between_ternary_quest_and_colon = false -ij_php_spaces_around_additive_operators = true -ij_php_spaces_around_arrow = false -ij_php_spaces_around_assignment_in_declare = false -ij_php_spaces_around_assignment_operators = true -ij_php_spaces_around_bitwise_operators = true -ij_php_spaces_around_equality_operators = true -ij_php_spaces_around_logical_operators = true -ij_php_spaces_around_multiplicative_operators = true -ij_php_spaces_around_null_coalesce_operator = true -ij_php_spaces_around_pipe_in_union_type = false -ij_php_spaces_around_relational_operators = true -ij_php_spaces_around_shift_operators = true -ij_php_spaces_around_unary_operator = false -ij_php_spaces_around_var_within_brackets = false -ij_php_spaces_within_array_initializer_braces = false -ij_php_spaces_within_brackets = false -ij_php_spaces_within_catch_parentheses = false -ij_php_spaces_within_for_parentheses = false -ij_php_spaces_within_if_parentheses = false -ij_php_spaces_within_method_call_parentheses = false -ij_php_spaces_within_method_parentheses = false -ij_php_spaces_within_parentheses = false -ij_php_spaces_within_short_echo_tags = true -ij_php_spaces_within_switch_parentheses = false -ij_php_spaces_within_while_parentheses = false -ij_php_special_else_if_treatment = false -ij_php_subpackage_weight = 28 -ij_php_ternary_operation_signs_on_next_line = false -ij_php_ternary_operation_wrap = off -ij_php_throws_weight = 2 -ij_php_todo_weight = 28 -ij_php_treat_multiline_arrays_and_lambdas_multiline = false -ij_php_unknown_tag_weight = 28 -ij_php_upper_case_boolean_const = false -ij_php_upper_case_null_const = false -ij_php_uses_weight = 28 -ij_php_var_weight = 28 -ij_php_variable_naming_style = mixed -ij_php_version_weight = 28 -ij_php_while_brace_force = never -ij_php_while_on_new_line = false - -[{*.eta,*.htm,*.html,*.ng,*.sht,*.shtm,*.shtml,ds}] -ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3 -ij_html_align_attributes = true -ij_html_align_text = false -ij_html_attribute_wrap = normal -ij_html_block_comment_add_space = false -ij_html_block_comment_at_first_column = true -ij_html_do_not_align_children_of_min_lines = 0 -ij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p -ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot -ij_html_enforce_quotes = false -ij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var -ij_html_keep_blank_lines = 2 -ij_html_keep_indents_on_empty_lines = false -ij_html_keep_line_breaks = true -ij_html_keep_line_breaks_in_text = true -ij_html_keep_whitespaces = false -ij_html_keep_whitespaces_inside = span, pre, textarea -ij_html_line_comment_at_first_column = true -ij_html_new_line_after_last_attribute = never -ij_html_new_line_before_first_attribute = never -ij_html_quote_style = double -ij_html_remove_new_line_before_tags = br -ij_html_space_after_tag_name = false -ij_html_space_around_equality_in_attribute = false -ij_html_space_inside_empty_tag = false -ij_html_text_wrap = normal - -[{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.prettierrc,.stylelintrc,bowerrc,composer.lock,jest.config}] -indent_size = 2 -ij_json_array_wrapping = split_into_lines -ij_json_keep_blank_lines_in_code = 0 -ij_json_keep_indents_on_empty_lines = false -ij_json_keep_line_breaks = true -ij_json_keep_trailing_comma = false -ij_json_object_wrapping = split_into_lines -ij_json_property_alignment = do_not_align -ij_json_space_after_colon = true -ij_json_space_after_comma = true -ij_json_space_before_colon = false -ij_json_space_before_comma = false -ij_json_spaces_within_braces = false -ij_json_spaces_within_brackets = false -ij_json_wrap_long_lines = false - -[{*.http,*.rest}] -indent_size = 0 -ij_continuation_indent_size = 4 -ij_http request_call_parameters_wrap = normal - -[{*.markdown,*.md,text}] -ij_markdown_force_one_space_after_blockquote_symbol = true -ij_markdown_force_one_space_after_header_symbol = true -ij_markdown_force_one_space_after_list_bullet = true -ij_markdown_force_one_space_between_words = true -ij_markdown_format_tables = true -ij_markdown_insert_quote_arrows_on_wrap = true -ij_markdown_keep_indents_on_empty_lines = false -ij_markdown_keep_line_breaks_inside_text_blocks = true -ij_markdown_max_lines_around_block_elements = 1 -ij_markdown_max_lines_around_header = 1 -ij_markdown_max_lines_between_paragraphs = 1 -ij_markdown_min_lines_around_block_elements = 1 -ij_markdown_min_lines_around_header = 1 -ij_markdown_min_lines_between_paragraphs = 1 -ij_markdown_wrap_text_if_long = true -ij_markdown_wrap_text_inside_blockquotes = true diff --git a/sampleWorkspace/.vscode/launch.json b/sampleWorkspace/.vscode/launch.json deleted file mode 100644 index c0bf1fe..0000000 --- a/sampleWorkspace/.vscode/launch.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "type": "ic10", - "request": "launch", - "name": "Debug ic10", - "program": "${file}", - "stopOnEntry": true, - "trace": false - } - ] -} diff --git a/sampleWorkspace/.vscode/settings.json b/sampleWorkspace/.vscode/settings.json deleted file mode 100644 index 873ea65..0000000 --- a/sampleWorkspace/.vscode/settings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "debug.inlineValues": true, - "cSpell.words": [ - "прилагаться" - ] -} diff --git a/sampleWorkspace/test.ic10 b/sampleWorkspace/test.ic10 deleted file mode 100644 index 9e55cdc..0000000 --- a/sampleWorkspace/test.ic10 +++ /dev/null @@ -1,5 +0,0 @@ -#env -s d0:0 Channel0 -l r1 d0:0 Channel0 -push 1 -push 2 \ No newline at end of file diff --git a/sampleWorkspace/test.icX b/sampleWorkspace/test.icX index ef0c69d..6ec91f6 100644 --- a/sampleWorkspace/test.icX +++ b/sampleWorkspace/test.icX @@ -1 +1,2 @@ -var a = 10 \ No newline at end of file +var a = 1 +var b = a \ No newline at end of file diff --git a/sampleWorkspace/test.icb b/sampleWorkspace/test.icb new file mode 100644 index 0000000..31a93b6 --- /dev/null +++ b/sampleWorkspace/test.icb @@ -0,0 +1,2 @@ +var test = 1 +var test2 = test \ No newline at end of file diff --git a/sampleWorkspace/test.icx.ic10 b/sampleWorkspace/test.icx.ic10 new file mode 100644 index 0000000..6b8c733 --- /dev/null +++ b/sampleWorkspace/test.icx.ic10 @@ -0,0 +1,2 @@ +move r0 1 +move r1 r0 \ No newline at end of file diff --git a/syntaxes/icB.tmLanguage.json b/syntaxes/icB.tmLanguage.json index 2001998..bd6538f 100644 --- a/syntaxes/icB.tmLanguage.json +++ b/syntaxes/icB.tmLanguage.json @@ -1,190 +1,251 @@ { "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "icX", - "foldingStartMarker": "^#\\s{0,1}Section:\\s{0,}\\w+$", - "foldingStopMarker": "^#\\s{0,1}endSection$", + "name": "icB", "patterns": [ { - "include": "#goto" + "include": "#GOTO" }, { - "include": "#keywords" + "include": "#ic10" }, { - "include": "#entity" + "include": "#operators" }, { - "include": "#variable" + "include": "#mathOpertors" }, { - "include": "#constant" + "include": "#if" }, { - "include": "#comments" + "include": "#variable" }, { - "include": "#operator" + "include": "#env" } ], "repository": { - "GOTO": { + "env":{ "patterns": [ { - "name": "support.function", - "match": "^.+(?=:\\D)" - }, - { - "name": "support.function", - "match": "(?!j)(?!\\s).+" + "begin": "([Ii][Cc]\\.device\\[)", + "end": "\\]", + "beginCaptures": { + "1":{ + "name":"variable.language.icB" + } + } } ] }, - "keywords": { + "variableName":{ + "match": "[a-zA-Z]\\w+\\s", + "name":"variable.parameter.icB" + }, + "ConstName":{ + "match": "(@[a-zA-Z]\\w+)", + "name":"constant.language.icB" + }, + "number":{ + "match": "[-]{0,1}[d]{0,1}\\d+[cC]{0,1}", + "name":"constant.numeric.icB" + }, + "hashString": { + "name": "string.quoted.double.icB", + "begin": "[\"]", + "end": "[\"]" + }, + "variable": { "patterns": [ { - "match": "\\b(ChargeRatio|Class|Damage|Efficiency|Growth|Health|Mature|MaxQuantity|OccupantHash|Occupied|Quantity|Seeding|SortingClass|Activate|AirRelease|Bpm|Charge|ClearMemory|CollectableGoods|Color|Combustion|CombustionInput|CombustionLimiter|CombustionOutput|CombustionOutput2|CompletionRatio|ElevatorLevel|ElevatorSpeed|Error|ExportCount|Filtration|Flush|ForceWrite|Fuel|Harvest|HASH(\"name\")|Horizontal|Idle|ImportCount|InterrogationProgress|LineNumber|Lock|Maximum|MineablesInQueue|MineablesInVicinity|Minimum|MinimumWattsToContact|Mode|NextWeatherEventTime|On|Open|Output|Plant|PositionX|PositionY|PositionZ|Power|PowerActual|PowerGeneration|PowerPotential|PowerRequired|PrefabHash|Pressure|PressureAir|PressureExternal|PressureInput|PressureInternal|PressureOutput|PressureOutput2|PressureSetting|PressureWaste|Ratio|RatioCarbonDioxide|RatioCarbonDioxideInput|RatioCarbonDioxideOutput|RatioCarbonDioxideOutput2|RatioLiquidCarbonDioxide|RatioLiquidNitrogen|RatioLiquidNitrousOxide|RatioLiquidOxygen|RatioLiquidPollutant|RatioLiquidVolatiles|RatioNitrogen|RatioNitrogenInput|RatioNitrogenOutput|RatioNitrogenOutput2|RatioNitrousOxide|RatioNitrousOxideInput|RatioNitrousOxideOutput|RatioNitrousOxideOutput2|RatioOxygen|RatioOxygenInput|RatioOxygenOutput|RatioOxygenOutput2|RatioPollutant|RatioPollutantInput|RatioPollutantOutput|RatioPollutantOutput2|RatioSteam|RatioVolatiles|RatioVolatilesInput|RatioVolatilesOutput|RatioVolatilesOutput2|RatioWater|RatioWaterInput|RatioWaterOutput|RatioWaterOutput2|Reagents|RecipeHash|RequestHash|RequiredPower|ReturnFuelCost|Rpm|Setting|SettingOutput|SignalID|SignalStrength|SizeX|SizeZ|SolarAngle|SolarIrradiance|SoundAlert|Stress|TargetPadIndex|TargetX|TargetY|TargetZ|Temperature|TemperatureExternal|TemperatureInput|TemperatureOutput|TemperatureOutput2|TemperatureSetting|Throttle|Time|TotalMoles|TotalMolesInput|TotalMolesOutput|TotalMolesOutput2|VelocityMagnitude|VelocityRelativeX|VelocityRelativeY|VelocityRelativeZ|Vertical|Volume|VolumeOfLiquid|WattsReachingContact|Contents|deg2rad|nan|ninf|pi|pinf|rad2deg|Recipe|Required|Channel0|Channel1|Channel2|Channel3|Channel4|Channel5|Channel6|Channel7|Average|Sum)\\b", - "name": "keyword.other.icX" - }, - { - "match": "\\b(if|while|else|end|switch|case|break|foreach|each|for)\\b", - "name": "keyword.control.icX" - }, - { - "match": "([~!+-=<>&|*]|dse)", - "name": "keyword.operator.icX" - }, - { - "match": "(var) ([\\d\\w]+)\\s*(=)", + "match": "(var|alias|const)(.+)(=)(.+)", "captures": { "1": { - "name": "keyword.control.icX" + "name":"keyword.control.icB" }, "2": { - "name": "variable.parameter.icX", "patterns": [ { - "include": "#variable" + "include": "#variableName" + }, + { + "include": "#ConstName" } ] }, "3": { - "name": "keyword.operator.icX" + "name":"keyword.operator.new.icB" + }, + "4": { + "patterns": [ + { + "include": "#ConstName" + }, + { + "include": "#hashString" + }, + { + "include": "#number" + }, + { + "include": "#variableName" + }, + { + "include": "#operators" + }, + { + "include": "#mathOpertors" + } + ] } } }, { - "match": "(const) ([\\d\\w]+)\\s*(=)", + "match": "(.+)(=)(.+)", "captures": { "1": { - "name": "keyword.control.icX" - }, - "2": { - "name": "variable.parameter.icX", "patterns": [ { - "include": "#constant" + "include": "#variableName" } ] }, + "2": { + "name":"keyword.operator.new.icB" + }, "3": { - "name": "keyword.operator.icX" + "patterns": [ + { + "include": "#hashString" + }, + { + "include": "#hashString" + }, + { + "include": "#number" + }, + { + "include": "#variableName" + } + ] + } + } + } + + ] + + }, + "dotOperator":{ + "patterns": [ + + ] + }, + "GOTO": { + "patterns": [ + { + "match": "([a-zA-Z]\\w+)(:)", + "captures": { + "0": { + "name": "variable.language.icB" } } }, { - "match": "(var) ([\\d\\w]+)", + "name": "support.function", + "match": "\\b([gG][oO][tT][oO]) ([a-zA-Z]\\w+)\\b", "captures": { "1": { - "name": "keyword.control.untitled" + "name": "keyword.control.icB" }, "2": { - "name": "variable.parameter.icX", - "patterns": [ - { - "include": "#variable" - } - ] + "name": "variable.language.icB" } } }, { - "match": "\\b(function) ([\\d\\w]+)", - "name": "keyword.operator.icX", + "name": "support.function", + "match": "\\b([gG][oO][tT][oO]) (\\d+)\\b", "captures": { "1": { - "name": "keyword.control.untitled" + "name": "keyword.control.icB" }, "2": { - "name": "entity.name.function.icX" + "name": "variable.parameter.icB" } } } ] }, - "comments": { + "ic10": { "patterns": [ { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.icX" - } - }, - "end": "$", - "name": "comment.line.number-sign.icX" - }, - { - "begin": "use", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.icX" - } - }, - "end": "$", - "name": "comment.line.number-sign.icX" + "match": "\\b(ChargeRatio|Class|Damage|Efficiency|Growth|Health|Mature|MaxQuantity|OccupantHash|Occupied|Quantity|Seeding|SortingClass|Activate|AirRelease|Bpm|Charge|ClearMemory|CollectableGoods|Color|Combustion|CombustionInput|CombustionLimiter|CombustionOutput|CombustionOutput2|CompletionRatio|ElevatorLevel|ElevatorSpeed|Error|ExportCount|Filtration|Flush|ForceWrite|Fuel|Harvest|HASH(\"name\")|Horizontal|Idle|ImportCount|InterrogationProgress|LineNumber|Lock|Maximum|MineablesInQueue|MineablesInVicinity|Minimum|MinimumWattsToContact|Mode|NextWeatherEventTime|On|Open|Output|Plant|PositionX|PositionY|PositionZ|Power|PowerActual|PowerGeneration|PowerPotential|PowerRequired|PrefabHash|Pressure|PressureAir|PressureExternal|PressureInput|PressureInternal|PressureOutput|PressureOutput2|PressureSetting|PressureWaste|Ratio|RatioCarbonDioxide|RatioCarbonDioxideInput|RatioCarbonDioxideOutput|RatioCarbonDioxideOutput2|RatioLiquidCarbonDioxide|RatioLiquidNitrogen|RatioLiquidNitrousOxide|RatioLiquidOxygen|RatioLiquidPollutant|RatioLiquidVolatiles|RatioNitrogen|RatioNitrogenInput|RatioNitrogenOutput|RatioNitrogenOutput2|RatioNitrousOxide|RatioNitrousOxideInput|RatioNitrousOxideOutput|RatioNitrousOxideOutput2|RatioOxygen|RatioOxygenInput|RatioOxygenOutput|RatioOxygenOutput2|RatioPollutant|RatioPollutantInput|RatioPollutantOutput|RatioPollutantOutput2|RatioSteam|RatioVolatiles|RatioVolatilesInput|RatioVolatilesOutput|RatioVolatilesOutput2|RatioWater|RatioWaterInput|RatioWaterOutput|RatioWaterOutput2|Reagents|RecipeHash|RequestHash|RequiredPower|ReturnFuelCost|Rpm|Setting|SettingOutput|SignalID|SignalStrength|SizeX|SizeZ|SolarAngle|SolarIrradiance|SoundAlert|Stress|TargetPadIndex|TargetX|TargetY|TargetZ|Temperature|TemperatureExternal|TemperatureInput|TemperatureOutput|TemperatureOutput2|TemperatureSetting|Throttle|Time|TotalMoles|TotalMolesInput|TotalMolesOutput|TotalMolesOutput2|VelocityMagnitude|VelocityRelativeX|VelocityRelativeY|VelocityRelativeZ|Vertical|Volume|VolumeOfLiquid|WattsReachingContact|Contents|deg2rad|nan|ninf|pi|pinf|rad2deg|Recipe|Required|Channel0|Channel1|Channel2|Channel3|Channel4|Channel5|Channel6|Channel7|Average|Sum)\\b", + "name": "entity.name.type.ic10" } ] }, - "constant": { + "operators": { "patterns": [ { - "name": "constant.numeric.icX", - "match": "\\b[\\d\\.]+\\b" + "match": "(={1,2}|!=|>=|<=|>|<|&{2}|\\|{2})", + "name": "keyword.control.icB" } ] }, - "entity": { + "mathOpertors": { "patterns": [ { - "name": "entity.name.function.icX", - "match": "\\b(abs|acos|add|alias|and|asin|atan|atan2|bap|bapal|bapz|bapzal|bdns|bdnsal|bdse|bdseal|beq|beqal|beqz|beqzal|bge|bgeal|bgez|bgezal|bgt|bgtal|bgtz|bgtzal|ble|bleal|blez|blezal|blt|bltal|bltz|bltzal|bna|bnaal|bnan|bnaz|bnazal|bne|bneal|bnez|bnezal|brap|brapz|brdns|brdse|breq|breqz|brge|brgez|brgt|brgtz|brle|brlez|brlt|brltz|brna|brnan|brnaz|brne|brnez|ceil|cos|debug|define|div|exp|floor|hcf|j|jal|jr|l|lb|lbn|lbns|lbs|log|lr|ls|max|min|mod|move|mul|nor|or|peek|pop|push|rand|return|round|s|sap|sapz|sb|sbn|sbs|sdns|sdse|select|seq|seqz|sge|sgez|sgt|sgtz|sin|sla|sle|sleep|slez|sll|slt|sltz|sna|snan|snanz|snaz|sne|snez|sqrt|sra|srl|ss|stack|sub|tan|trunc|xor|yield)\\b" - }, - { - "name": "entity.name.function.icX", - "match": "([\\d\\w]+)\\(\\)" - }, - { - "name": "entity.name.tag.icX", - "match": "(^\\s{0,}j \\w+$)|(^\\s{0,}\\w+:$)" - }, - { - "name": "entity.name.function.icX", - "match": "\\b(debug|stack)\\b" + "match": "(\\+|\\-|\\*|\\/)", + "name": "keyword.control.icB" } ] }, - "variable": { + "if": { "patterns": [ { - "name": "variable.parameter.icX", - "match": "\\b(([rd]{1,}(r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a)))|(r(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|a))|(d(0|1|2|3|4|5|b)))\\b" + "begin": "([iI][fF])", + "beginCaptures": { + "1": { + "name": "keyword.control.icB" + } + }, + "end": "([tT][hH][eE][nN])", + "endCaptures": { + "1": { + "name": "keyword.control.icB" + } + }, + "patterns": [ + { + "include": "#operators" + }, + { + "include": "#mathOpertors" + }, + { + "include": "#hashString" + }, + { + "include": "#hashString" + }, + { + "include": "#number" + }, + { + "include": "#variableName" + } + ] + }, + { + "match": "([eE][lL][sS][eE])", + "name": "keyword.control.icB" }, { - "name": "variable.language.icX", - "match": "\\bsp\\b" + "match": "([eE][nN][dD][iI][fF])", + "name": "keyword.control.icB" } ] } }, - "scopeName": "source.icX" + "scopeName": "source.icB" } \ No newline at end of file