diff options
author | Jeremy Rifkin <51220084+jeremy-rifkin@users.noreply.github.com> | 2023-11-30 17:52:17 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-30 17:52:17 -0500 |
commit | c02f94233ed46c42600bec411262cba15c8e5b6f (patch) | |
tree | 01e107551a276dc581210a5c890ceb55a070e99b | |
parent | e129f242b1df184e332ae4efc6bdf7890c030f02 (diff) | |
download | compiler-explorer-gh-9786.tar.gz compiler-explorer-gh-9786.zip |
Add LanguageConfiguration for llvm ir (#5825)gh-9786
The main point of this is to make ctrl+/ work, also added an entry to
llvm.defaults.properties
-rw-r--r-- | etc/config/llvm.defaults.properties | 10 | ||||
-rw-r--r-- | static/modes/llvm-ir-mode.ts | 26 |
2 files changed, 34 insertions, 2 deletions
diff --git a/etc/config/llvm.defaults.properties b/etc/config/llvm.defaults.properties index baa1cd0a3..880adc82e 100644 --- a/etc/config/llvm.defaults.properties +++ b/etc/config/llvm.defaults.properties @@ -2,14 +2,20 @@ binaryHideFuncRe=^(__.*|_(init|start|fini)|(de)?register_tm_clones|call_gmon_sta objdumper=objdump demangler=c++filt -compilers=irclang:llc:opt +compilers=irclang:irclang17:llc:opt defaultCompiler=irclang compiler.irclang.intelAsm=-masm=intel compiler.irclang.groupName=Clang x86-64 compiler.irclang.options=-x ir compiler.irclang.exe=/usr/bin/clang++ -compiler.irclang.name=clang 3.9.1 +compiler.irclang.name=clang default + +compiler.irclang17.intelAsm=-masm=intel +compiler.irclang17.groupName=Clang x86-64 +compiler.irclang17.options=-x ir +compiler.irclang17.exe=/usr/bin/clang++-17 +compiler.irclang17.name=clang 17 compiler.llc.compilerType=llc compiler.llc.supportsExecute=false diff --git a/static/modes/llvm-ir-mode.ts b/static/modes/llvm-ir-mode.ts index 3d137244d..a91581301 100644 --- a/static/modes/llvm-ir-mode.ts +++ b/static/modes/llvm-ir-mode.ts @@ -347,7 +347,33 @@ export function definition(): monaco.languages.IMonarchLanguage { }; } +const config: monaco.languages.LanguageConfiguration = { + comments: { + lineComment: ';', + }, + brackets: [ + ['{', '}'], + ['[', ']'], + ['(', ')'], + ], + autoClosingPairs: [ + {open: '[', close: ']'}, + {open: '{', close: '}'}, + {open: '(', close: ')'}, + {open: "'", close: "'", notIn: ['string', 'comment']}, + {open: '"', close: '"', notIn: ['string']}, + ], + surroundingPairs: [ + {open: '{', close: '}'}, + {open: '[', close: ']'}, + {open: '(', close: ')'}, + {open: '"', close: '"'}, + {open: "'", close: "'"}, + ], +}; + monaco.languages.register({id: 'llvm-ir'}); monaco.languages.setMonarchTokensProvider('llvm-ir', definition()); +monaco.languages.setLanguageConfiguration('llvm-ir', config); export {}; |