Merge pull request #115309 from pfitzseb/sp/julia-grammar
Add Julia grammar
This commit is contained in:
commit
c86be3bb57
10 changed files with 3880 additions and 0 deletions
2
extensions/julia/.vscodeignore
Normal file
2
extensions/julia/.vscodeignore
Normal file
|
@ -0,0 +1,2 @@
|
|||
build/**
|
||||
cgmanifest.json
|
17
extensions/julia/cgmanifest.json
Normal file
17
extensions/julia/cgmanifest.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"registrations": [
|
||||
{
|
||||
"component": {
|
||||
"type": "git",
|
||||
"git": {
|
||||
"name": " JuliaEditorSupport/atom-language-julia",
|
||||
"repositoryUrl": "https://github.com/JuliaEditorSupport/atom-language-julia",
|
||||
"commitHash": "8ae8d9cac742c65ae0bef1a5e2d068e2cae871bc"
|
||||
}
|
||||
},
|
||||
"license": "MIT",
|
||||
"version": "0.21.0"
|
||||
}
|
||||
],
|
||||
"version": 1
|
||||
}
|
31
extensions/julia/language-configuration.json
Normal file
31
extensions/julia/language-configuration.json
Normal file
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"comments": {
|
||||
"lineComment": "#",
|
||||
"blockComment": [ "#=", "=#" ]
|
||||
},
|
||||
"brackets": [
|
||||
["{", "}"],
|
||||
["[", "]"],
|
||||
["(", ")"]
|
||||
],
|
||||
"autoClosingPairs": [
|
||||
["{", "}"],
|
||||
["[", "]"],
|
||||
["(", ")"],
|
||||
["`", "`"],
|
||||
{ "open": "\"", "close": "\"", "notIn": ["string", "comment"] }
|
||||
],
|
||||
"surroundingPairs": [
|
||||
["{", "}"],
|
||||
["[", "]"],
|
||||
["(", ")"],
|
||||
["\"", "\""],
|
||||
["`", "`"]
|
||||
],
|
||||
"folding": {
|
||||
"markers": {
|
||||
"start": "^\\s*#region",
|
||||
"end": "^\\s*#endregion"
|
||||
}
|
||||
}
|
||||
}
|
54
extensions/julia/package.json
Normal file
54
extensions/julia/package.json
Normal file
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"name": "julia",
|
||||
"displayName": "%displayName%",
|
||||
"description": "%description%",
|
||||
"version": "1.0.0",
|
||||
"publisher": "vscode",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"vscode": "0.10.x"
|
||||
},
|
||||
"scripts": {
|
||||
"update-grammar": "node ../node_modules/.bin/vscode-grammar-updater JuliaEditorSupport/atom-language-julia grammars/julia_vscode.json ./syntaxes/julia.tmLanguage.json"
|
||||
},
|
||||
"contributes": {
|
||||
"languages": [
|
||||
{
|
||||
"id": "julia",
|
||||
"aliases": [
|
||||
"Julia",
|
||||
"julia"
|
||||
],
|
||||
"extensions": [
|
||||
".jl"
|
||||
],
|
||||
"firstLine": "^#!\\s*/.*\\bjulia[0-9.-]*\\b",
|
||||
"configuration": "./language-configuration.json"
|
||||
},
|
||||
{
|
||||
"id": "juliamarkdown",
|
||||
"aliases": [
|
||||
"Julia Markdown",
|
||||
"juliamarkdown"
|
||||
],
|
||||
"extensions": [
|
||||
".jmd"
|
||||
]
|
||||
}
|
||||
],
|
||||
"grammars": [
|
||||
{
|
||||
"language": "julia",
|
||||
"scopeName": "source.julia",
|
||||
"path": "./syntaxes/julia.tmLanguage.json",
|
||||
"embeddedLanguages": {
|
||||
"meta.embedded.inline.cpp": "cpp",
|
||||
"meta.embedded.inline.javascript": "javascript",
|
||||
"meta.embedded.inline.python": "python",
|
||||
"meta.embedded.inline.r": "r",
|
||||
"meta.embedded.inline.sql": "sql"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
4
extensions/julia/package.nls.json
Normal file
4
extensions/julia/package.nls.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"displayName": "Julia Language Basics",
|
||||
"description": "Provides syntax highlighting & bracket matching in Julia files."
|
||||
}
|
1113
extensions/julia/syntaxes/julia.tmLanguage.json
Normal file
1113
extensions/julia/syntaxes/julia.tmLanguage.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -22,6 +22,7 @@ const mappings = [
|
|||
['html', 'text.html.basic'],
|
||||
['ini', 'source.ini'],
|
||||
['java', 'source.java'],
|
||||
['jl', 'source.julia'],
|
||||
['js', 'source.js'],
|
||||
['json', 'source.json.comments'],
|
||||
['jsx', 'source.js.jsx'],
|
||||
|
|
|
@ -141,6 +141,9 @@
|
|||
{
|
||||
"include": "#java"
|
||||
},
|
||||
{
|
||||
"include": "#jl"
|
||||
},
|
||||
{
|
||||
"include": "#js"
|
||||
},
|
||||
|
@ -2076,6 +2079,92 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"jl": {
|
||||
"name": "meta.resultBlock.search",
|
||||
"begin": "^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.jl)(:)$",
|
||||
"end": "^(?!\\s)",
|
||||
"beginCaptures": {
|
||||
"0": {
|
||||
"name": "string meta.path.search"
|
||||
},
|
||||
"1": {
|
||||
"name": "meta.path.dirname.search"
|
||||
},
|
||||
"2": {
|
||||
"name": "meta.path.basename.search"
|
||||
},
|
||||
"3": {
|
||||
"name": "punctuation.separator"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"name": "meta.resultLine.search meta.resultLine.multiLine.search",
|
||||
"begin": "^ (?:\\s*)((\\d+) )",
|
||||
"while": "^ (?:\\s*)(?:((\\d+)(:))|((\\d+) ))",
|
||||
"beginCaptures": {
|
||||
"0": {
|
||||
"name": "constant.numeric.integer meta.resultLinePrefix.search"
|
||||
},
|
||||
"1": {
|
||||
"name": "meta.resultLinePrefix.contextLinePrefix.search"
|
||||
},
|
||||
"2": {
|
||||
"name": "meta.resultLinePrefix.lineNumber.search"
|
||||
}
|
||||
},
|
||||
"whileCaptures": {
|
||||
"0": {
|
||||
"name": "constant.numeric.integer meta.resultLinePrefix.search"
|
||||
},
|
||||
"1": {
|
||||
"name": "meta.resultLinePrefix.matchLinePrefix.search"
|
||||
},
|
||||
"2": {
|
||||
"name": "meta.resultLinePrefix.lineNumber.search"
|
||||
},
|
||||
"3": {
|
||||
"name": "punctuation.separator"
|
||||
},
|
||||
"4": {
|
||||
"name": "meta.resultLinePrefix.contextLinePrefix.search"
|
||||
},
|
||||
"5": {
|
||||
"name": "meta.resultLinePrefix.lineNumber.search"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "source.julia"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"begin": "^ (?:\\s*)((\\d+)(:))",
|
||||
"while": "(?=not)possible",
|
||||
"name": "meta.resultLine.search meta.resultLine.singleLine.search",
|
||||
"beginCaptures": {
|
||||
"0": {
|
||||
"name": "constant.numeric.integer meta.resultLinePrefix.search"
|
||||
},
|
||||
"1": {
|
||||
"name": "meta.resultLinePrefix.matchLinePrefix.search"
|
||||
},
|
||||
"2": {
|
||||
"name": "meta.resultLinePrefix.lineNumber.search"
|
||||
},
|
||||
"3": {
|
||||
"name": "punctuation.separator"
|
||||
}
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
"include": "source.julia"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"js": {
|
||||
"name": "meta.resultBlock.search",
|
||||
"begin": "^(?!\\s)(.*?)([^\\\\\\/\\n]*\\.js)(:)$",
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
# n-queens (nqueens) solver, for nsquaresx-by-nsquaresy board
|
||||
|
||||
struct Queen
|
||||
x::Int
|
||||
y::Int
|
||||
end
|
||||
hitshorz(queena, queenb) = queena.x == queenb.x
|
||||
hitsvert(queena, queenb) = queena.y == queenb.y
|
||||
hitsdiag(queena, queenb) = abs(queena.x - queenb.x) == abs(queena.y - queenb.y)
|
||||
hitshvd(qa, qb) = hitshorz(qa, qb) || hitsvert(qa, qb) || hitsdiag(qa, qb)
|
||||
hitsany(testqueen, queens) = any(q -> hitshvd(testqueen, q), queens)
|
||||
|
||||
function trysolve(nsquaresx, nsquaresy, nqueens, presqueens = ())
|
||||
nqueens == 0 && return presqueens
|
||||
for xsquare in 1:nsquaresx
|
||||
for ysquare in 1:nsquaresy
|
||||
testqueen = Queen(xsquare, ysquare)
|
||||
if !hitsany(testqueen, presqueens)
|
||||
tryqueens = (presqueens..., testqueen)
|
||||
maybesol = trysolve(nsquaresx, nsquaresy, nqueens - 1, tryqueens)
|
||||
maybesol !== nothing && return maybesol
|
||||
end
|
||||
end
|
||||
end
|
||||
return nothing
|
||||
end
|
2543
extensions/vscode-colorize-tests/test/colorize-results/test_jl.json
Normal file
2543
extensions/vscode-colorize-tests/test/colorize-results/test_jl.json
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue