aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Rifkin <51220084+jeremy-rifkin@users.noreply.github.com>2023-11-30 17:52:17 -0500
committerGitHub <noreply@github.com>2023-11-30 17:52:17 -0500
commitc02f94233ed46c42600bec411262cba15c8e5b6f (patch)
tree01e107551a276dc581210a5c890ceb55a070e99b
parente129f242b1df184e332ae4efc6bdf7890c030f02 (diff)
downloadcompiler-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.properties10
-rw-r--r--static/modes/llvm-ir-mode.ts26
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 {};