mirror of
https://github.com/Microsoft/vscode
synced 2024-09-19 18:48:00 +00:00
Merge branch 'master' into issue##109636
This commit is contained in:
commit
6c5cc99c77
|
@ -4,14 +4,14 @@
|
|||
"component": {
|
||||
"type": "git",
|
||||
"git": {
|
||||
"name": "language-rust",
|
||||
"repositoryUrl": "https://github.com/zargony/atom-language-rust",
|
||||
"commitHash": "7d59e2ad79fbe5925bd2fd3bd3857bf9f421ff6f"
|
||||
"name": "rust-syntax",
|
||||
"repositoryUrl": "https://github.com/dustypomerleau/rust-syntax",
|
||||
"commitHash": "f3eb2221c8c334f1aae1fbc7af9a6c0b753bb29b"
|
||||
}
|
||||
},
|
||||
"license": "MIT",
|
||||
"description": "The files syntaxes/rust.tmLanguage.json was derived from the Atom package https://atom.io/packages/language-rust.",
|
||||
"version": "0.4.12"
|
||||
"description": "A TextMate-style grammar for Rust.",
|
||||
"version": "0.2.10"
|
||||
}
|
||||
],
|
||||
"version": 1
|
||||
|
|
|
@ -5,21 +5,32 @@
|
|||
"version": "1.0.0",
|
||||
"publisher": "vscode",
|
||||
"license": "MIT",
|
||||
"engines": { "vscode": "*" },
|
||||
"engines": {
|
||||
"vscode": "*"
|
||||
},
|
||||
"scripts": {
|
||||
"update-grammar": "node ../../build/npm/update-grammar.js zargony/atom-language-rust grammars/rust.cson ./syntaxes/rust.tmLanguage.json"
|
||||
"update-grammar": "node ../../build/npm/update-grammar.js dustypomerleau/rust-syntax syntaxes/rust.tmLanguage.json ./syntaxes/rust.tmLanguage.json"
|
||||
},
|
||||
"contributes": {
|
||||
"languages": [{
|
||||
"languages": [
|
||||
{
|
||||
"id": "rust",
|
||||
"extensions": [".rs"],
|
||||
"aliases": ["Rust", "rust"],
|
||||
"extensions": [
|
||||
".rs"
|
||||
],
|
||||
"aliases": [
|
||||
"Rust",
|
||||
"rust"
|
||||
],
|
||||
"configuration": "./language-configuration.json"
|
||||
}],
|
||||
"grammars": [{
|
||||
}
|
||||
],
|
||||
"grammars": [
|
||||
{
|
||||
"language": "rust",
|
||||
"path": "./syntaxes/rust.tmLanguage.json",
|
||||
"scopeName": "source.rust"
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,18 +1,18 @@
|
|||
[
|
||||
{
|
||||
"c": "use",
|
||||
"t": "source.rust keyword.other.rust",
|
||||
"t": "source.rust meta.use.rust keyword.control.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword: #569CD6",
|
||||
"light_plus": "keyword: #0000FF",
|
||||
"dark_vs": "keyword: #569CD6",
|
||||
"light_vs": "keyword: #0000FF",
|
||||
"hc_black": "keyword: #569CD6"
|
||||
"dark_plus": "keyword.control: #C586C0",
|
||||
"light_plus": "keyword.control: #AF00DB",
|
||||
"dark_vs": "keyword.control: #569CD6",
|
||||
"light_vs": "keyword.control: #0000FF",
|
||||
"hc_black": "keyword.control: #C586C0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " std",
|
||||
"t": "source.rust",
|
||||
"c": " ",
|
||||
"t": "source.rust meta.use.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -21,9 +21,20 @@
|
|||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "std",
|
||||
"t": "source.rust meta.use.rust entity.name.namespace.rust",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.namespace: #4EC9B0",
|
||||
"light_plus": "entity.name.namespace: #267F99",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "entity.name.namespace: #4EC9B0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "::",
|
||||
"t": "source.rust keyword.operator.misc.rust",
|
||||
"t": "source.rust meta.use.rust keyword.operator.namespace.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
|
@ -33,8 +44,19 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": "io;",
|
||||
"t": "source.rust",
|
||||
"c": "io",
|
||||
"t": "source.rust meta.use.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ";",
|
||||
"t": "source.rust meta.use.rust punctuation.semi.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -45,18 +67,18 @@
|
|||
},
|
||||
{
|
||||
"c": "fn",
|
||||
"t": "source.rust keyword.other.fn.rust",
|
||||
"t": "source.rust meta.function.definition.rust keyword.control.fn.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword: #569CD6",
|
||||
"light_plus": "keyword: #0000FF",
|
||||
"dark_vs": "keyword: #569CD6",
|
||||
"light_vs": "keyword: #0000FF",
|
||||
"hc_black": "keyword: #569CD6"
|
||||
"dark_plus": "keyword.control: #C586C0",
|
||||
"light_plus": "keyword.control: #AF00DB",
|
||||
"dark_vs": "keyword.control: #569CD6",
|
||||
"light_vs": "keyword.control: #0000FF",
|
||||
"hc_black": "keyword.control: #C586C0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.rust",
|
||||
"t": "source.rust meta.function.definition.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -67,7 +89,7 @@
|
|||
},
|
||||
{
|
||||
"c": "main",
|
||||
"t": "source.rust entity.name.function.rust",
|
||||
"t": "source.rust meta.function.definition.rust entity.name.function.rust",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
|
@ -77,8 +99,30 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": "() {",
|
||||
"t": "source.rust",
|
||||
"c": "()",
|
||||
"t": "source.rust meta.function.definition.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.rust meta.function.definition.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "{",
|
||||
"t": "source.rust meta.function.definition.rust punctuation.brackets.curly.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -100,18 +144,18 @@
|
|||
},
|
||||
{
|
||||
"c": "println!",
|
||||
"t": "source.rust support.function.std.rust",
|
||||
"t": "source.rust meta.macro.rust entity.name.function.macro.rust",
|
||||
"r": {
|
||||
"dark_plus": "support.function: #DCDCAA",
|
||||
"light_plus": "support.function: #795E26",
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "support.function: #DCDCAA"
|
||||
"hc_black": "entity.name.function: #DCDCAA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.rust",
|
||||
"t": "source.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -121,7 +165,18 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": "\"Guess the number!\"",
|
||||
"c": "\"",
|
||||
"t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "string: #CE9178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "Guess the number!",
|
||||
"t": "source.rust string.quoted.double.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
|
@ -132,8 +187,30 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": ");",
|
||||
"t": "source.rust",
|
||||
"c": "\"",
|
||||
"t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "string: #CE9178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ";",
|
||||
"t": "source.rust punctuation.semi.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -155,18 +232,18 @@
|
|||
},
|
||||
{
|
||||
"c": "println!",
|
||||
"t": "source.rust support.function.std.rust",
|
||||
"t": "source.rust meta.macro.rust entity.name.function.macro.rust",
|
||||
"r": {
|
||||
"dark_plus": "support.function: #DCDCAA",
|
||||
"light_plus": "support.function: #795E26",
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "support.function: #DCDCAA"
|
||||
"hc_black": "entity.name.function: #DCDCAA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.rust",
|
||||
"t": "source.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -176,7 +253,18 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": "\"Please input your guess.\"",
|
||||
"c": "\"",
|
||||
"t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "string: #CE9178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "Please input your guess.",
|
||||
"t": "source.rust string.quoted.double.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
|
@ -187,8 +275,30 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": ");",
|
||||
"t": "source.rust",
|
||||
"c": "\"",
|
||||
"t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "string: #CE9178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ";",
|
||||
"t": "source.rust punctuation.semi.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -210,13 +320,13 @@
|
|||
},
|
||||
{
|
||||
"c": "let",
|
||||
"t": "source.rust keyword.other.rust",
|
||||
"t": "source.rust storage.type.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword: #569CD6",
|
||||
"light_plus": "keyword: #0000FF",
|
||||
"dark_vs": "keyword: #569CD6",
|
||||
"light_vs": "keyword: #0000FF",
|
||||
"hc_black": "keyword: #569CD6"
|
||||
"dark_plus": "storage.type: #569CD6",
|
||||
"light_plus": "storage.type: #0000FF",
|
||||
"dark_vs": "storage.type: #569CD6",
|
||||
"light_vs": "storage.type: #0000FF",
|
||||
"hc_black": "storage.type: #569CD6"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -241,8 +351,30 @@
|
|||
"hc_black": "storage.modifier: #569CD6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "guess",
|
||||
"t": "source.rust variable.other.rust",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
|
@ -254,7 +386,7 @@
|
|||
},
|
||||
{
|
||||
"c": "=",
|
||||
"t": "source.rust keyword.operator.assignment.rust",
|
||||
"t": "source.rust keyword.operator.assignment.equal.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
|
@ -276,18 +408,18 @@
|
|||
},
|
||||
{
|
||||
"c": "String",
|
||||
"t": "source.rust storage.class.std.rust",
|
||||
"t": "source.rust entity.name.type.rust",
|
||||
"r": {
|
||||
"dark_plus": "storage: #569CD6",
|
||||
"light_plus": "storage: #0000FF",
|
||||
"dark_vs": "storage: #569CD6",
|
||||
"light_vs": "storage: #0000FF",
|
||||
"hc_black": "storage: #569CD6"
|
||||
"dark_plus": "entity.name.type: #4EC9B0",
|
||||
"light_plus": "entity.name.type: #267F99",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "entity.name.type: #4EC9B0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "::",
|
||||
"t": "source.rust keyword.operator.misc.rust",
|
||||
"t": "source.rust keyword.operator.namespace.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
|
@ -298,7 +430,7 @@
|
|||
},
|
||||
{
|
||||
"c": "new",
|
||||
"t": "source.rust entity.name.function.rust",
|
||||
"t": "source.rust meta.function.call.rust entity.name.function.rust",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
|
@ -308,7 +440,29 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": "();",
|
||||
"c": "()",
|
||||
"t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ";",
|
||||
"t": "source.rust punctuation.semi.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
|
@ -320,18 +474,18 @@
|
|||
},
|
||||
{
|
||||
"c": "io",
|
||||
"t": "source.rust",
|
||||
"t": "source.rust entity.name.namespace.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_plus": "entity.name.namespace: #4EC9B0",
|
||||
"light_plus": "entity.name.namespace: #267F99",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
"hc_black": "entity.name.namespace: #4EC9B0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "::",
|
||||
"t": "source.rust keyword.operator.misc.rust",
|
||||
"t": "source.rust keyword.operator.namespace.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
|
@ -342,95 +496,7 @@
|
|||
},
|
||||
{
|
||||
"c": "stdin",
|
||||
"t": "source.rust entity.name.function.rust",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "entity.name.function: #DCDCAA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "().",
|
||||
"t": "source.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "read_line",
|
||||
"t": "source.rust entity.name.function.rust",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "entity.name.function: #DCDCAA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "&",
|
||||
"t": "source.rust keyword.operator.sigil.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
"dark_vs": "keyword.operator: #D4D4D4",
|
||||
"light_vs": "keyword.operator: #000000",
|
||||
"hc_black": "keyword.operator: #D4D4D4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "mut",
|
||||
"t": "source.rust storage.modifier.mut.rust",
|
||||
"r": {
|
||||
"dark_plus": "storage.modifier: #569CD6",
|
||||
"light_plus": "storage.modifier: #0000FF",
|
||||
"dark_vs": "storage.modifier: #569CD6",
|
||||
"light_vs": "storage.modifier: #0000FF",
|
||||
"hc_black": "storage.modifier: #569CD6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " guess)",
|
||||
"t": "source.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " .",
|
||||
"t": "source.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "ok",
|
||||
"t": "source.rust entity.name.function.rust",
|
||||
"t": "source.rust meta.function.call.rust entity.name.function.rust",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
|
@ -441,6 +507,105 @@
|
|||
},
|
||||
{
|
||||
"c": "()",
|
||||
"t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ".",
|
||||
"t": "source.rust keyword.operator.access.dot.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
"dark_vs": "keyword.operator: #D4D4D4",
|
||||
"light_vs": "keyword.operator: #000000",
|
||||
"hc_black": "keyword.operator: #D4D4D4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "read_line",
|
||||
"t": "source.rust meta.function.call.rust entity.name.function.rust",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "entity.name.function: #DCDCAA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "&",
|
||||
"t": "source.rust meta.function.call.rust keyword.operator.borrow.and.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
"dark_vs": "keyword.operator: #D4D4D4",
|
||||
"light_vs": "keyword.operator: #000000",
|
||||
"hc_black": "keyword.operator: #D4D4D4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "mut",
|
||||
"t": "source.rust meta.function.call.rust storage.modifier.mut.rust",
|
||||
"r": {
|
||||
"dark_plus": "storage.modifier: #569CD6",
|
||||
"light_plus": "storage.modifier: #0000FF",
|
||||
"dark_vs": "storage.modifier: #569CD6",
|
||||
"light_vs": "storage.modifier: #0000FF",
|
||||
"hc_black": "storage.modifier: #569CD6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.rust meta.function.call.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "guess",
|
||||
"t": "source.rust meta.function.call.rust variable.other.rust",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
|
@ -452,6 +617,39 @@
|
|||
},
|
||||
{
|
||||
"c": ".",
|
||||
"t": "source.rust keyword.operator.access.dot.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
"dark_vs": "keyword.operator: #D4D4D4",
|
||||
"light_vs": "keyword.operator: #000000",
|
||||
"hc_black": "keyword.operator: #D4D4D4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "ok",
|
||||
"t": "source.rust meta.function.call.rust entity.name.function.rust",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "entity.name.function: #DCDCAA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "()",
|
||||
"t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
|
@ -461,9 +659,20 @@
|
|||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ".",
|
||||
"t": "source.rust keyword.operator.access.dot.rust",
|
||||
"r": {
|
||||
"dark_plus": "keyword.operator: #D4D4D4",
|
||||
"light_plus": "keyword.operator: #000000",
|
||||
"dark_vs": "keyword.operator: #D4D4D4",
|
||||
"light_vs": "keyword.operator: #000000",
|
||||
"hc_black": "keyword.operator: #D4D4D4"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "expect",
|
||||
"t": "source.rust entity.name.function.rust",
|
||||
"t": "source.rust meta.function.call.rust entity.name.function.rust",
|
||||
"r": {
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
|
@ -474,7 +683,7 @@
|
|||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.rust",
|
||||
"t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -484,8 +693,8 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": "\"Failed to read line\"",
|
||||
"t": "source.rust string.quoted.double.rust",
|
||||
"c": "\"",
|
||||
"t": "source.rust meta.function.call.rust string.quoted.double.rust punctuation.definition.string.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
|
@ -495,8 +704,41 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": ");",
|
||||
"t": "source.rust",
|
||||
"c": "Failed to read line",
|
||||
"t": "source.rust meta.function.call.rust string.quoted.double.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "string: #CE9178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "\"",
|
||||
"t": "source.rust meta.function.call.rust string.quoted.double.rust punctuation.definition.string.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "string: #CE9178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ";",
|
||||
"t": "source.rust punctuation.semi.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -518,18 +760,18 @@
|
|||
},
|
||||
{
|
||||
"c": "println!",
|
||||
"t": "source.rust support.function.std.rust",
|
||||
"t": "source.rust meta.macro.rust entity.name.function.macro.rust",
|
||||
"r": {
|
||||
"dark_plus": "support.function: #DCDCAA",
|
||||
"light_plus": "support.function: #795E26",
|
||||
"dark_plus": "entity.name.function: #DCDCAA",
|
||||
"light_plus": "entity.name.function: #795E26",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "support.function: #DCDCAA"
|
||||
"hc_black": "entity.name.function: #DCDCAA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "(",
|
||||
"t": "source.rust",
|
||||
"t": "source.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
@ -539,7 +781,18 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": "\"You guessed: {}\"",
|
||||
"c": "\"",
|
||||
"t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "string: #CE9178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "You guessed: ",
|
||||
"t": "source.rust string.quoted.double.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
|
@ -550,7 +803,40 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"c": ", guess);",
|
||||
"c": "{}",
|
||||
"t": "source.rust string.quoted.double.rust meta.interpolation.rust punctuation.definition.interpolation.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "string: #CE9178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "\"",
|
||||
"t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
|
||||
"r": {
|
||||
"dark_plus": "string: #CE9178",
|
||||
"light_plus": "string: #A31515",
|
||||
"dark_vs": "string: #CE9178",
|
||||
"light_vs": "string: #A31515",
|
||||
"hc_black": "string: #CE9178"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ",",
|
||||
"t": "source.rust punctuation.comma.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": " ",
|
||||
"t": "source.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
|
@ -560,9 +846,42 @@
|
|||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "guess",
|
||||
"t": "source.rust variable.other.rust",
|
||||
"r": {
|
||||
"dark_plus": "variable: #9CDCFE",
|
||||
"light_plus": "variable: #001080",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "variable: #9CDCFE"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ")",
|
||||
"t": "source.rust punctuation.brackets.round.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": ";",
|
||||
"t": "source.rust punctuation.semi.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
"dark_vs": "default: #D4D4D4",
|
||||
"light_vs": "default: #000000",
|
||||
"hc_black": "default: #FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"c": "}",
|
||||
"t": "source.rust",
|
||||
"t": "source.rust punctuation.brackets.curly.rust",
|
||||
"r": {
|
||||
"dark_plus": "default: #D4D4D4",
|
||||
"light_plus": "default: #000000",
|
||||
|
|
|
@ -22,7 +22,6 @@ set VSCODE_DEV=1
|
|||
set VSCODE_CLI=1
|
||||
set ELECTRON_ENABLE_LOGGING=1
|
||||
set ELECTRON_ENABLE_STACK_DUMPING=1
|
||||
set VSCODE_LOGS=
|
||||
|
||||
:: Launch Code
|
||||
|
||||
|
|
|
@ -41,7 +41,6 @@ function code() {
|
|||
export VSCODE_CLI=1
|
||||
export ELECTRON_ENABLE_STACK_DUMPING=1
|
||||
export ELECTRON_ENABLE_LOGGING=1
|
||||
export VSCODE_LOGS=
|
||||
|
||||
# Launch Code
|
||||
exec "$CODE" . --no-sandbox "$@"
|
||||
|
|
|
@ -811,7 +811,7 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
|
|||
const onDragOver = (event: DragEvent) => {
|
||||
event.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)
|
||||
|
||||
const x = event.screenX - left;
|
||||
const x = event.clientX - left;
|
||||
if (event.dataTransfer) {
|
||||
event.dataTransfer.dropEffect = 'none';
|
||||
}
|
||||
|
@ -954,6 +954,7 @@ export interface IAbstractTreeOptionsUpdate extends ITreeRendererOptions {
|
|||
readonly smoothScrolling?: boolean;
|
||||
readonly horizontalScrolling?: boolean;
|
||||
readonly expandOnlyOnDoubleClick?: boolean;
|
||||
readonly expandOnlyOnTwistieClick?: boolean | ((e: any) => boolean); // e is T
|
||||
}
|
||||
|
||||
export interface IAbstractTreeOptions<T, TFilterData = void> extends IAbstractTreeOptionsUpdate, IListOptions<T> {
|
||||
|
@ -961,7 +962,6 @@ export interface IAbstractTreeOptions<T, TFilterData = void> extends IAbstractTr
|
|||
readonly filter?: ITreeFilter<T, TFilterData>;
|
||||
readonly dnd?: ITreeDragAndDrop<T>;
|
||||
readonly keyboardNavigationEventFilter?: IKeyboardNavigationEventFilter;
|
||||
readonly expandOnlyOnTwistieClick?: boolean | ((e: T) => boolean);
|
||||
readonly additionalScrollHeight?: number;
|
||||
}
|
||||
|
||||
|
@ -1109,7 +1109,9 @@ class TreeNodeListMouseController<T, TFilterData, TRef> extends MouseController<
|
|||
expandOnlyOnTwistieClick = !!this.tree.expandOnlyOnTwistieClick;
|
||||
}
|
||||
|
||||
if (expandOnlyOnTwistieClick && !onTwistie) {
|
||||
const clickedOnFocus = this.tree.getFocus()[0] === node.element;
|
||||
|
||||
if (expandOnlyOnTwistieClick && !onTwistie && e.browserEvent.detail !== 2 && !(clickedOnFocus && !node.collapsed)) {
|
||||
return super.onViewPointer(e);
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,6 @@ suite('Processes', () => {
|
|||
VSCODE_CLI: 'x',
|
||||
VSCODE_DEV: 'x',
|
||||
VSCODE_IPC_HOOK: 'x',
|
||||
VSCODE_LOGS: 'x',
|
||||
VSCODE_NLS_CONFIG: 'x',
|
||||
VSCODE_PORTABLE: 'x',
|
||||
VSCODE_PID: 'x',
|
||||
|
|
|
@ -200,7 +200,7 @@ class CodeMain {
|
|||
VSCODE_IPC_HOOK: environmentService.mainIPCHandle
|
||||
};
|
||||
|
||||
['VSCODE_NLS_CONFIG', 'VSCODE_LOGS', 'VSCODE_PORTABLE'].forEach(key => {
|
||||
['VSCODE_NLS_CONFIG', 'VSCODE_PORTABLE'].forEach(key => {
|
||||
const value = process.env[key];
|
||||
if (typeof value === 'string') {
|
||||
instanceEnvironment[key] = value;
|
||||
|
|
|
@ -370,6 +370,10 @@ export interface IEditorOptions {
|
|||
* Suggest options.
|
||||
*/
|
||||
suggest?: ISuggestOptions;
|
||||
/**
|
||||
* Smart select opptions;
|
||||
*/
|
||||
smartSelect?: ISmartSelectOptions;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -3430,6 +3434,44 @@ class EditorSuggest extends BaseEditorOption<EditorOption.suggest, InternalSugge
|
|||
|
||||
//#endregion
|
||||
|
||||
//#region smart select
|
||||
|
||||
export interface ISmartSelectOptions {
|
||||
selectLeadingAndTrailingWhitespace?: boolean
|
||||
}
|
||||
|
||||
export type SmartSelectOptions = Readonly<Required<ISmartSelectOptions>>;
|
||||
|
||||
class SmartSelect extends BaseEditorOption<EditorOption.smartSelect, SmartSelectOptions> {
|
||||
|
||||
constructor() {
|
||||
super(
|
||||
EditorOption.smartSelect, 'smartSelect',
|
||||
{
|
||||
selectLeadingAndTrailingWhitespace: true
|
||||
},
|
||||
{
|
||||
'editor.smartSelect.selectLeadingAndTrailingWhitespace': {
|
||||
description: nls.localize('selectLeadingAndTrailingWhitespace', "Whether leading and trailing whitespace should always be selected."),
|
||||
default: true,
|
||||
type: 'boolean'
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public validate(input: any): Readonly<Required<ISmartSelectOptions>> {
|
||||
if (!input || typeof input !== 'object') {
|
||||
return this.defaultValue;
|
||||
}
|
||||
return {
|
||||
selectLeadingAndTrailingWhitespace: EditorBooleanOption.boolean((input as ISmartSelectOptions).selectLeadingAndTrailingWhitespace, this.defaultValue.selectLeadingAndTrailingWhitespace)
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region tabFocusMode
|
||||
|
||||
class EditorTabFocusMode extends ComputedEditorOption<EditorOption.tabFocusMode, boolean> {
|
||||
|
@ -3646,6 +3688,7 @@ export const enum EditorOption {
|
|||
showFoldingControls,
|
||||
showUnused,
|
||||
snippetSuggestions,
|
||||
smartSelect,
|
||||
smoothScrolling,
|
||||
stopRenderingLineAfter,
|
||||
suggest,
|
||||
|
@ -4165,6 +4208,7 @@ export const EditorOptions = {
|
|||
description: nls.localize('snippetSuggestions', "Controls whether snippets are shown with other suggestions and how they are sorted.")
|
||||
}
|
||||
)),
|
||||
smartSelect: register(new SmartSelect()),
|
||||
smoothScrolling: register(new EditorBooleanOption(
|
||||
EditorOption.smoothScrolling, 'smoothScrolling', false,
|
||||
{ description: nls.localize('smoothScrolling', "Controls whether the editor will scroll using an animation.") }
|
||||
|
|
|
@ -19,7 +19,7 @@ import { TokenizationRegistryImpl } from 'vs/editor/common/modes/tokenizationReg
|
|||
import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions';
|
||||
import { IMarkerData } from 'vs/platform/markers/common/markers';
|
||||
import { iconRegistry, Codicon } from 'vs/base/common/codicons';
|
||||
|
||||
import { ThemeIcon } from 'vs/platform/theme/common/themeService';
|
||||
/**
|
||||
* Open ended enum at runtime
|
||||
* @internal
|
||||
|
@ -1359,7 +1359,10 @@ export interface WorkspaceEditMetadata {
|
|||
needsConfirmation: boolean;
|
||||
label: string;
|
||||
description?: string;
|
||||
iconPath?: { id: string } | URI | { light: URI, dark: URI };
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
iconPath?: ThemeIcon | URI | { light: URI, dark: URI };
|
||||
}
|
||||
|
||||
export interface WorkspaceFileEditOptions {
|
||||
|
|
|
@ -261,31 +261,32 @@ export enum EditorOption {
|
|||
showFoldingControls = 91,
|
||||
showUnused = 92,
|
||||
snippetSuggestions = 93,
|
||||
smoothScrolling = 94,
|
||||
stopRenderingLineAfter = 95,
|
||||
suggest = 96,
|
||||
suggestFontSize = 97,
|
||||
suggestLineHeight = 98,
|
||||
suggestOnTriggerCharacters = 99,
|
||||
suggestSelection = 100,
|
||||
tabCompletion = 101,
|
||||
tabIndex = 102,
|
||||
unusualLineTerminators = 103,
|
||||
useTabStops = 104,
|
||||
wordSeparators = 105,
|
||||
wordWrap = 106,
|
||||
wordWrapBreakAfterCharacters = 107,
|
||||
wordWrapBreakBeforeCharacters = 108,
|
||||
wordWrapColumn = 109,
|
||||
wordWrapMinified = 110,
|
||||
wrappingIndent = 111,
|
||||
wrappingStrategy = 112,
|
||||
showDeprecated = 113,
|
||||
editorClassName = 114,
|
||||
pixelRatio = 115,
|
||||
tabFocusMode = 116,
|
||||
layoutInfo = 117,
|
||||
wrappingInfo = 118
|
||||
smartSelect = 94,
|
||||
smoothScrolling = 95,
|
||||
stopRenderingLineAfter = 96,
|
||||
suggest = 97,
|
||||
suggestFontSize = 98,
|
||||
suggestLineHeight = 99,
|
||||
suggestOnTriggerCharacters = 100,
|
||||
suggestSelection = 101,
|
||||
tabCompletion = 102,
|
||||
tabIndex = 103,
|
||||
unusualLineTerminators = 104,
|
||||
useTabStops = 105,
|
||||
wordSeparators = 106,
|
||||
wordWrap = 107,
|
||||
wordWrapBreakAfterCharacters = 108,
|
||||
wordWrapBreakBeforeCharacters = 109,
|
||||
wordWrapColumn = 110,
|
||||
wordWrapMinified = 111,
|
||||
wrappingIndent = 112,
|
||||
wrappingStrategy = 113,
|
||||
showDeprecated = 114,
|
||||
editorClassName = 115,
|
||||
pixelRatio = 116,
|
||||
tabFocusMode = 117,
|
||||
layoutInfo = 118,
|
||||
wrappingInfo = 119
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -23,9 +23,7 @@ import { WordSelectionRangeProvider } from 'vs/editor/contrib/smartSelect/wordSe
|
|||
import { BracketSelectionRangeProvider } from 'vs/editor/contrib/smartSelect/bracketSelections';
|
||||
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
|
||||
import { onUnexpectedExternalError } from 'vs/base/common/errors';
|
||||
import { ITextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfigurationService';
|
||||
import { ConfigurationScope, Extensions, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry';
|
||||
import { Registry } from 'vs/platform/registry/common/platform';
|
||||
import { EditorOption } from 'vs/editor/common/config/editorOptions';
|
||||
|
||||
class SelectionRanges {
|
||||
|
||||
|
@ -50,49 +48,36 @@ class SelectionRanges {
|
|||
|
||||
class SmartSelectController implements IEditorContribution {
|
||||
|
||||
public static readonly ID = 'editor.contrib.smartSelectController';
|
||||
static readonly ID = 'editor.contrib.smartSelectController';
|
||||
|
||||
static get(editor: ICodeEditor): SmartSelectController {
|
||||
return editor.getContribution<SmartSelectController>(SmartSelectController.ID);
|
||||
}
|
||||
|
||||
private readonly _editor: ICodeEditor;
|
||||
|
||||
private _state?: SelectionRanges[];
|
||||
private _selectionListener?: IDisposable;
|
||||
private _ignoreSelection: boolean = false;
|
||||
|
||||
constructor(
|
||||
editor: ICodeEditor,
|
||||
@ITextResourceConfigurationService private readonly _configService: ITextResourceConfigurationService,
|
||||
) {
|
||||
this._editor = editor;
|
||||
}
|
||||
constructor(private readonly _editor: ICodeEditor) { }
|
||||
|
||||
dispose(): void {
|
||||
this._selectionListener?.dispose();
|
||||
}
|
||||
|
||||
run(forward: boolean): Promise<void> | void {
|
||||
async run(forward: boolean): Promise<void> {
|
||||
if (!this._editor.hasModel()) {
|
||||
return;
|
||||
}
|
||||
|
||||
const selections = this._editor.getSelections();
|
||||
const model = this._editor.getModel();
|
||||
|
||||
if (!modes.SelectionRangeRegistry.has(model)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
let promise: Promise<void> = Promise.resolve(undefined);
|
||||
|
||||
if (!this._state) {
|
||||
|
||||
const selectLeadingAndTrailingWhitespace = this._configService.getValue<boolean>(model.uri, 'editor.smartSelect.selectLeadingAndTrailingWhitespace') ?? true;
|
||||
|
||||
promise = provideSelectionRanges(model, selections.map(s => s.getPosition()), { selectLeadingAndTrailingWhitespace }, CancellationToken.None).then(ranges => {
|
||||
await provideSelectionRanges(model, selections.map(s => s.getPosition()), this._editor.getOption(EditorOption.smartSelect), CancellationToken.None).then(ranges => {
|
||||
if (!arrays.isNonEmptyArray(ranges) || ranges.length !== selections.length) {
|
||||
// invalid result
|
||||
return;
|
||||
|
@ -125,21 +110,18 @@ class SmartSelectController implements IEditorContribution {
|
|||
});
|
||||
}
|
||||
|
||||
return promise.then(() => {
|
||||
if (!this._state) {
|
||||
// no state
|
||||
return;
|
||||
}
|
||||
this._state = this._state.map(state => state.mov(forward));
|
||||
const selections = this._state.map(state => Selection.fromPositions(state.ranges[state.index].getStartPosition(), state.ranges[state.index].getEndPosition()));
|
||||
const newSelections = this._state.map(state => Selection.fromPositions(state.ranges[state.index].getStartPosition(), state.ranges[state.index].getEndPosition()));
|
||||
this._ignoreSelection = true;
|
||||
try {
|
||||
this._editor.setSelections(selections);
|
||||
this._editor.setSelections(newSelections);
|
||||
} finally {
|
||||
this._ignoreSelection = false;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -186,21 +168,6 @@ class GrowSelectionAction extends AbstractSmartSelect {
|
|||
}
|
||||
}
|
||||
|
||||
//todo@jrieken use proper editor config instead. however, to keep the number
|
||||
// of changes low use the quick config definition
|
||||
Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({
|
||||
id: 'editor',
|
||||
properties: {
|
||||
'editor.smartSelect.selectLeadingAndTrailingWhitespace': {
|
||||
scope: ConfigurationScope.LANGUAGE_OVERRIDABLE,
|
||||
description: nls.localize('selectLeadingAndTrailingWhitespace', "Weather leading and trailing whitespace should always be selected."),
|
||||
default: true,
|
||||
type: 'boolean'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// renamed command id
|
||||
CommandsRegistry.registerCommandAlias('editor.action.smartSelect.grow', 'editor.action.smartSelect.expand');
|
||||
|
||||
|
@ -241,7 +208,7 @@ export interface SelectionRangesOptions {
|
|||
selectLeadingAndTrailingWhitespace: boolean
|
||||
}
|
||||
|
||||
export function provideSelectionRanges(model: ITextModel, positions: Position[], options: SelectionRangesOptions, token: CancellationToken): Promise<Range[][]> {
|
||||
export async function provideSelectionRanges(model: ITextModel, positions: Position[], options: SelectionRangesOptions, token: CancellationToken): Promise<Range[][]> {
|
||||
|
||||
const providers = modes.SelectionRangeRegistry.all(model);
|
||||
|
||||
|
@ -271,7 +238,7 @@ export function provideSelectionRanges(model: ITextModel, positions: Position[],
|
|||
}, onUnexpectedExternalError));
|
||||
}
|
||||
|
||||
return Promise.all(work).then(() => {
|
||||
await Promise.all(work);
|
||||
|
||||
return allRawRanges.map(oneRawRanges => {
|
||||
|
||||
|
@ -331,7 +298,6 @@ export function provideSelectionRanges(model: ITextModel, positions: Position[],
|
|||
}
|
||||
return oneRangesWithTrivia;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
registerModelCommand('_executeSelectionRangeProvider', function (model, ...args) {
|
||||
|
|
68
src/vs/monaco.d.ts
vendored
68
src/vs/monaco.d.ts
vendored
|
@ -2909,6 +2909,10 @@ declare namespace monaco.editor {
|
|||
* Suggest options.
|
||||
*/
|
||||
suggest?: ISuggestOptions;
|
||||
/**
|
||||
* Smart select opptions;
|
||||
*/
|
||||
smartSelect?: ISmartSelectOptions;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -3821,6 +3825,12 @@ declare namespace monaco.editor {
|
|||
|
||||
export type InternalSuggestOptions = Readonly<Required<ISuggestOptions>>;
|
||||
|
||||
export interface ISmartSelectOptions {
|
||||
selectLeadingAndTrailingWhitespace?: boolean;
|
||||
}
|
||||
|
||||
export type SmartSelectOptions = Readonly<Required<ISmartSelectOptions>>;
|
||||
|
||||
/**
|
||||
* Describes how to indent wrapped lines.
|
||||
*/
|
||||
|
@ -3945,31 +3955,32 @@ declare namespace monaco.editor {
|
|||
showFoldingControls = 91,
|
||||
showUnused = 92,
|
||||
snippetSuggestions = 93,
|
||||
smoothScrolling = 94,
|
||||
stopRenderingLineAfter = 95,
|
||||
suggest = 96,
|
||||
suggestFontSize = 97,
|
||||
suggestLineHeight = 98,
|
||||
suggestOnTriggerCharacters = 99,
|
||||
suggestSelection = 100,
|
||||
tabCompletion = 101,
|
||||
tabIndex = 102,
|
||||
unusualLineTerminators = 103,
|
||||
useTabStops = 104,
|
||||
wordSeparators = 105,
|
||||
wordWrap = 106,
|
||||
wordWrapBreakAfterCharacters = 107,
|
||||
wordWrapBreakBeforeCharacters = 108,
|
||||
wordWrapColumn = 109,
|
||||
wordWrapMinified = 110,
|
||||
wrappingIndent = 111,
|
||||
wrappingStrategy = 112,
|
||||
showDeprecated = 113,
|
||||
editorClassName = 114,
|
||||
pixelRatio = 115,
|
||||
tabFocusMode = 116,
|
||||
layoutInfo = 117,
|
||||
wrappingInfo = 118
|
||||
smartSelect = 94,
|
||||
smoothScrolling = 95,
|
||||
stopRenderingLineAfter = 96,
|
||||
suggest = 97,
|
||||
suggestFontSize = 98,
|
||||
suggestLineHeight = 99,
|
||||
suggestOnTriggerCharacters = 100,
|
||||
suggestSelection = 101,
|
||||
tabCompletion = 102,
|
||||
tabIndex = 103,
|
||||
unusualLineTerminators = 104,
|
||||
useTabStops = 105,
|
||||
wordSeparators = 106,
|
||||
wordWrap = 107,
|
||||
wordWrapBreakAfterCharacters = 108,
|
||||
wordWrapBreakBeforeCharacters = 109,
|
||||
wordWrapColumn = 110,
|
||||
wordWrapMinified = 111,
|
||||
wrappingIndent = 112,
|
||||
wrappingStrategy = 113,
|
||||
showDeprecated = 114,
|
||||
editorClassName = 115,
|
||||
pixelRatio = 116,
|
||||
tabFocusMode = 117,
|
||||
layoutInfo = 118,
|
||||
wrappingInfo = 119
|
||||
}
|
||||
export const EditorOptions: {
|
||||
acceptSuggestionOnCommitCharacter: IEditorOption<EditorOption.acceptSuggestionOnCommitCharacter, boolean>;
|
||||
|
@ -4067,6 +4078,7 @@ declare namespace monaco.editor {
|
|||
showUnused: IEditorOption<EditorOption.showUnused, boolean>;
|
||||
showDeprecated: IEditorOption<EditorOption.showDeprecated, boolean>;
|
||||
snippetSuggestions: IEditorOption<EditorOption.snippetSuggestions, 'none' | 'top' | 'bottom' | 'inline'>;
|
||||
smartSelect: IEditorOption<EditorOption.smartSelect, any>;
|
||||
smoothScrolling: IEditorOption<EditorOption.smoothScrolling, boolean>;
|
||||
stopRenderingLineAfter: IEditorOption<EditorOption.stopRenderingLineAfter, number>;
|
||||
suggest: IEditorOption<EditorOption.suggest, InternalSuggestOptions>;
|
||||
|
@ -6199,12 +6211,6 @@ declare namespace monaco.languages {
|
|||
needsConfirmation: boolean;
|
||||
label: string;
|
||||
description?: string;
|
||||
iconPath?: {
|
||||
id: string;
|
||||
} | Uri | {
|
||||
light: Uri;
|
||||
dark: Uri;
|
||||
};
|
||||
}
|
||||
|
||||
export interface WorkspaceFileEditOptions {
|
||||
|
|
|
@ -78,6 +78,7 @@ export interface NativeParsedArgs {
|
|||
'force-user-env'?: boolean;
|
||||
'sync'?: 'on' | 'off';
|
||||
'__sandbox'?: boolean;
|
||||
'logsPath'?: string;
|
||||
|
||||
// chromium command line args: https://electronjs.org/docs/all#supported-chrome-command-line-switches
|
||||
'no-proxy-server'?: boolean;
|
||||
|
|
|
@ -112,6 +112,7 @@ export const OPTIONS: OptionDescriptions<Required<NativeParsedArgs>> = {
|
|||
'force-user-env': { type: 'boolean' },
|
||||
'open-devtools': { type: 'boolean' },
|
||||
'__sandbox': { type: 'boolean' },
|
||||
'logsPath': { type: 'string' },
|
||||
|
||||
// chromium flags
|
||||
'no-proxy-server': { type: 'boolean' },
|
||||
|
|
|
@ -204,12 +204,11 @@ export class NativeEnvironmentService implements INativeEnvironmentService {
|
|||
get disableTelemetry(): boolean { return !!this._args['disable-telemetry']; }
|
||||
|
||||
constructor(protected _args: NativeParsedArgs) {
|
||||
if (!process.env['VSCODE_LOGS']) {
|
||||
if (!_args.logsPath) {
|
||||
const key = toLocalISOString(new Date()).replace(/-|:|\.\d+Z$/g, '');
|
||||
process.env['VSCODE_LOGS'] = path.join(this.userDataPath, 'logs', key);
|
||||
_args.logsPath = path.join(this.userDataPath, 'logs', key);
|
||||
}
|
||||
|
||||
this.logsPath = process.env['VSCODE_LOGS']!;
|
||||
this.logsPath = _args.logsPath;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -118,14 +118,15 @@ function createScopedContextKeyService(contextKeyService: IContextKeyService, wi
|
|||
return result;
|
||||
}
|
||||
|
||||
export const multiSelectModifierSettingKey = 'workbench.list.multiSelectModifier';
|
||||
export const openModeSettingKey = 'workbench.list.openMode';
|
||||
export const horizontalScrollingKey = 'workbench.list.horizontalScrolling';
|
||||
export const keyboardNavigationSettingKey = 'workbench.list.keyboardNavigation';
|
||||
export const automaticKeyboardNavigationSettingKey = 'workbench.list.automaticKeyboardNavigation';
|
||||
const multiSelectModifierSettingKey = 'workbench.list.multiSelectModifier';
|
||||
const openModeSettingKey = 'workbench.list.openMode';
|
||||
const horizontalScrollingKey = 'workbench.list.horizontalScrolling';
|
||||
const keyboardNavigationSettingKey = 'workbench.list.keyboardNavigation';
|
||||
const automaticKeyboardNavigationSettingKey = 'workbench.list.automaticKeyboardNavigation';
|
||||
const treeIndentKey = 'workbench.tree.indent';
|
||||
const treeRenderIndentGuidesKey = 'workbench.tree.renderIndentGuides';
|
||||
const listSmoothScrolling = 'workbench.list.smoothScrolling';
|
||||
const treeExpandOnFolderClick = 'workbench.tree.expandOnFolderClick';
|
||||
|
||||
function useAltAsMultipleSelectionModifier(configurationService: IConfigurationService): boolean {
|
||||
return configurationService.getValue(multiSelectModifierSettingKey) === 'alt';
|
||||
|
@ -831,7 +832,8 @@ function workbenchTreeDataPreamble<T, TFilterData, TOptions extends IAbstractTre
|
|||
keyboardNavigationEventFilter: createKeyboardNavigationEventFilter(container, keybindingService),
|
||||
additionalScrollHeight,
|
||||
hideTwistiesOfChildlessElements: options.hideTwistiesOfChildlessElements,
|
||||
expandOnlyOnDoubleClick: configurationService.getValue(openModeSettingKey) === 'doubleClick'
|
||||
expandOnlyOnDoubleClick: configurationService.getValue(openModeSettingKey) === 'doubleClick',
|
||||
expandOnlyOnTwistieClick: !configurationService.getValue<boolean>(treeExpandOnFolderClick)
|
||||
} as TOptions
|
||||
};
|
||||
}
|
||||
|
@ -933,6 +935,9 @@ class WorkbenchTreeInternals<TInput, T, TFilterData> {
|
|||
if (e.affectsConfiguration(openModeSettingKey)) {
|
||||
newOptions = { ...newOptions, expandOnlyOnDoubleClick: configurationService.getValue(openModeSettingKey) === 'doubleClick' };
|
||||
}
|
||||
if (e.affectsConfiguration(treeExpandOnFolderClick)) {
|
||||
newOptions = { ...newOptions, expandOnlyOnTwistieClick: !configurationService.getValue<boolean>(treeExpandOnFolderClick) };
|
||||
}
|
||||
if (Object.keys(newOptions).length > 0) {
|
||||
tree.updateOptions(newOptions);
|
||||
}
|
||||
|
@ -1036,6 +1041,11 @@ configurationRegistry.registerConfiguration({
|
|||
'type': 'boolean',
|
||||
'default': true,
|
||||
markdownDescription: localize('automatic keyboard navigation setting', "Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut.")
|
||||
},
|
||||
[treeExpandOnFolderClick]: {
|
||||
type: 'boolean',
|
||||
default: true,
|
||||
description: localize('list expand on folder click setting', "Controls whether tree folders are expanded when clicking the folder names."),
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -128,7 +128,7 @@ export class BulkEditPane extends ViewPane {
|
|||
this._tree = <WorkbenchAsyncDataTree<BulkFileOperations, BulkEditElement, FuzzyScore>>this._instaService.createInstance(
|
||||
WorkbenchAsyncDataTree, this.id, treeContainer,
|
||||
new BulkEditDelegate(),
|
||||
[new TextEditElementRenderer(), this._instaService.createInstance(FileElementRenderer, resourceLabels), new CategoryElementRenderer()],
|
||||
[this._instaService.createInstance(TextEditElementRenderer), this._instaService.createInstance(FileElementRenderer, resourceLabels), this._instaService.createInstance(CategoryElementRenderer)],
|
||||
this._treeDataSource,
|
||||
{
|
||||
accessibilityProvider: this._instaService.createInstance(BulkEditAccessibilityProvider),
|
||||
|
|
|
@ -21,7 +21,7 @@ import { ILabelService } from 'vs/platform/label/common/label';
|
|||
import type { IListAccessibilityProvider } from 'vs/base/browser/ui/list/listWidget';
|
||||
import { IconLabel } from 'vs/base/browser/ui/iconLabel/iconLabel';
|
||||
import { basename } from 'vs/base/common/resources';
|
||||
import { ThemeIcon } from 'vs/platform/theme/common/themeService';
|
||||
import { IThemeService, ThemeIcon } from 'vs/platform/theme/common/themeService';
|
||||
import { compare } from 'vs/base/common/strings';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo';
|
||||
|
@ -386,6 +386,8 @@ export class CategoryElementRenderer implements ITreeRenderer<CategoryElement, F
|
|||
|
||||
readonly templateId: string = CategoryElementRenderer.id;
|
||||
|
||||
constructor(@IThemeService private readonly _themeService: IThemeService) { }
|
||||
|
||||
renderTemplate(container: HTMLElement): CategoryElementTemplate {
|
||||
return new CategoryElementTemplate(container);
|
||||
}
|
||||
|
@ -394,12 +396,15 @@ export class CategoryElementRenderer implements ITreeRenderer<CategoryElement, F
|
|||
|
||||
template.icon.style.setProperty('--background-dark', null);
|
||||
template.icon.style.setProperty('--background-light', null);
|
||||
template.icon.style.color = '';
|
||||
|
||||
const { metadata } = node.element.category;
|
||||
if (ThemeIcon.isThemeIcon(metadata.iconPath)) {
|
||||
// css
|
||||
const className = ThemeIcon.asClassName(metadata.iconPath);
|
||||
template.icon.className = className ? `theme-icon ${className}` : '';
|
||||
template.icon.style.color = metadata.iconPath.color ? this._themeService.getColorTheme().getColor(metadata.iconPath.color.id)?.toString() ?? '' : '';
|
||||
|
||||
|
||||
} else if (URI.isUri(metadata.iconPath)) {
|
||||
// background-image
|
||||
|
@ -532,7 +537,7 @@ class TextEditElementTemplate {
|
|||
private readonly _icon: HTMLDivElement;
|
||||
private readonly _label: HighlightedLabel;
|
||||
|
||||
constructor(container: HTMLElement) {
|
||||
constructor(container: HTMLElement, @IThemeService private readonly _themeService: IThemeService) {
|
||||
container.classList.add('textedit');
|
||||
|
||||
this._checkbox = document.createElement('input');
|
||||
|
@ -597,6 +602,8 @@ class TextEditElementTemplate {
|
|||
// css
|
||||
const className = ThemeIcon.asClassName(iconPath);
|
||||
this._icon.className = className ? `theme-icon ${className}` : '';
|
||||
this._icon.style.color = iconPath.color ? this._themeService.getColorTheme().getColor(iconPath.color.id)?.toString() ?? '' : '';
|
||||
|
||||
|
||||
} else if (URI.isUri(iconPath)) {
|
||||
// background-image
|
||||
|
@ -623,8 +630,10 @@ export class TextEditElementRenderer implements ITreeRenderer<TextEditElement, F
|
|||
|
||||
readonly templateId: string = TextEditElementRenderer.id;
|
||||
|
||||
constructor(@IThemeService private readonly _themeService: IThemeService) { }
|
||||
|
||||
renderTemplate(container: HTMLElement): TextEditElementTemplate {
|
||||
return new TextEditElementTemplate(container);
|
||||
return new TextEditElementTemplate(container, this._themeService);
|
||||
}
|
||||
|
||||
renderElement({ element }: ITreeNode<TextEditElement, FuzzyScore>, _index: number, template: TextEditElementTemplate): void {
|
||||
|
|
|
@ -76,7 +76,6 @@
|
|||
}
|
||||
|
||||
.explorer-viewlet .explorer-item .monaco-icon-name-container.multiple > .label-name > .monaco-highlighted-label {
|
||||
padding: 1px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
|
|
|
@ -217,7 +217,8 @@ export class TOCTree extends WorkbenchObjectTree<SettingsTreeGroupElement> {
|
|||
styleController: id => new DefaultStyleController(DOM.createStyleSheet(container), id),
|
||||
accessibilityProvider: instantiationService.createInstance(SettingsAccessibilityProvider),
|
||||
collapseByDefault: true,
|
||||
horizontalScrolling: false
|
||||
horizontalScrolling: false,
|
||||
hideTwistiesOfChildlessElements: true
|
||||
};
|
||||
|
||||
super(
|
||||
|
|
Loading…
Reference in a new issue