Added syntax highlighting.

This commit is contained in:
Jakob Erzar 2018-04-27 17:50:55 +02:00
parent b2cf6b90bf
commit baed378b33
9 changed files with 249 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
node_modules
*.vsix

18
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,18 @@
// A launch configuration that launches the extension inside a new window
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
{
"version": "0.2.0",
"configurations": [
{
"name": "Extension",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
]
}
]
}

4
.vscodeignore Normal file
View File

@ -0,0 +1,4 @@
.vscode/**
.vscode-test/**
.gitignore
vsc-extension-quickstart.md

4
CHANGELOG.md Normal file
View File

@ -0,0 +1,4 @@
# Change Log
## [0.0.1] - 2018-04-27
- Initial release, featuring ismple syntax highlighting.

16
README.md Normal file
View File

@ -0,0 +1,16 @@
# LLVM TableGen
Simple syntax highlighting support for the LLVM TableGen language.
TextMate grammar used was taken from the official [LLVM repository](https://github.com/llvm-mirror/llvm/blob/master/utils/textmate/TableGen.tmbundle/Syntaxes/TableGen.tmLanguage).
## Features
- Syntax highlighting
![Syntax highlighting](images/syntax.png)
## Known Issues
- Please report any issues or suggestions you find on [GitHub](https://github.com/jakoberzar/vscode-llvm-tablegen/issues).

BIN
images/syntax.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -0,0 +1,30 @@
{
"comments": {
// symbol used for single line comment. Remove this entry if your language does not support line comments
"lineComment": "//",
// symbols used for start and end a block comment. Remove this entry if your language does not support block comments
"blockComment": [ "/*", "*/" ]
},
// symbols used as brackets
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
// symbols that are auto closed when typing
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
],
// symbols that that can be used to surround a selection
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
]
}

43
package.json Normal file
View File

@ -0,0 +1,43 @@
{
"name": "llvm-tablegen",
"displayName": "LLVM TableGen",
"description": "Syntax highlighting for TableGen.",
"version": "0.0.1",
"publisher": "jakob-erzar",
"engines": {
"vscode": "^1.22.0"
},
"categories": [
"Languages"
],
"keywords": [
"llvm-tablegen",
"llvm-tblgen",
"tblgen",
"llvm",
"tablegen",
"table gen",
"syntax"
],
"contributes": {
"languages": [{
"id": "tablegen",
"aliases": ["TableGen", "tblgen", "tablegen"],
"extensions": [".td"],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "tablegen",
"scopeName": "source.tablegen",
"path": "./syntaxes/tablegen.tmLanguage"
}]
},
"bugs": {
"url": "https://github.com/jakoberzar/vscode-llvm-tablegen/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/jakoberzar/vscode-llvm-tablegen.git"
},
"homepage": "https://github.com/jakoberzar/vscode-llvm-tablegen/blob/master/README.md"
}

View File

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array><string>td</string></array>
<key>foldingStartMarker</key>
<string>/\*\*|\{\s*$</string>
<key>foldingStopMarker</key>
<string>\*\*/|^\s*\}</string>
<key>name</key>
<string>TableGen</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comments</string>
</dict>
<dict>
<key>match</key>
<string>\b(def|let|in|code|dag|string|list|bits|bit|field|include|defm|foreach|class|multiclass|int)\b</string>
<key>name</key>
<string>keyword.control.tablegen</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"</string>
<key>name</key>
<string>string.quoted.double.untitled</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escape.tablegen</string>
</dict>
</array>
</dict>
</array>
<key>repository</key>
<dict>
<key>comments</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.toc-list.banner.block.tablegen</string>
</dict>
</dict>
<key>match</key>
<string>^/\* =(\s*.*?)\s*= \*/$\n?</string>
<key>name</key>
<string>comment.block.tablegen</string>
</dict>
<dict>
<key>begin</key>
<string>/\*</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.tablegen</string>
</dict>
</dict>
<key>end</key>
<string>\*/</string>
<key>name</key>
<string>comment.block.tablegen</string>
</dict>
<dict>
<key>match</key>
<string>\*/.*\n</string>
<key>name</key>
<string>invalid.illegal.stray-comment-end.tablegen</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.toc-list.banner.line.tablegen</string>
</dict>
</dict>
<key>match</key>
<string>^// =(\s*.*?)\s*=\s*$\n?</string>
<key>name</key>
<string>comment.line.banner.tablegen</string>
</dict>
<dict>
<key>begin</key>
<string>//</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.tablegen</string>
</dict>
</dict>
<key>end</key>
<string>$\n?</string>
<key>name</key>
<string>comment.line.double-slash.tablegen</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?&gt;\\\s*\n)</string>
<key>name</key>
<string>punctuation.separator.continuation.tablegen</string>
</dict>
</array>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.tablegen</string>
<key>uuid</key>
<string>3A090BFC-E74B-4993-8DAE-7CCF6D238A32</string>
</dict>
</plist>