diff --git a/org.eclipse.corrosion/META-INF/MANIFEST.MF b/org.eclipse.corrosion/META-INF/MANIFEST.MF
index 3837206c..2f0d10b3 100644
--- a/org.eclipse.corrosion/META-INF/MANIFEST.MF
+++ b/org.eclipse.corrosion/META-INF/MANIFEST.MF
@@ -40,7 +40,8 @@ Require-Bundle: org.eclipse.core.contenttype,
org.eclipse.unittest.ui;bundle-version="0.1.0",
org.eclipse.ecf;bundle-version="3.9.0",
org.eclipse.ecf.filetransfer;bundle-version="5.1.0",
- org.eclipse.ecf.provider.filetransfer;bundle-version="1.0.0"
+ org.eclipse.ecf.provider.filetransfer;bundle-version="1.0.0",
+ org.eclipse.tm4e.language_pack
Bundle-RequiredExecutionEnvironment: JavaSE-21
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.corrosion;x-friends:="org.eclipse.corrosion.tests",
diff --git a/org.eclipse.corrosion/build.properties b/org.eclipse.corrosion/build.properties
index 759e46f5..9028a95d 100644
--- a/org.eclipse.corrosion/build.properties
+++ b/org.eclipse.corrosion/build.properties
@@ -4,7 +4,6 @@ bin.includes = META-INF/,\
.,\
plugin.xml,\
grammar/,\
- language-configurations/,\
icons/,\
images/,\
scripts/,\
diff --git a/org.eclipse.corrosion/grammar/rust.tmLanguage.json b/org.eclipse.corrosion/grammar/rust.tmLanguage.json
deleted file mode 100644
index 784bd8c9..00000000
--- a/org.eclipse.corrosion/grammar/rust.tmLanguage.json
+++ /dev/null
@@ -1,692 +0,0 @@
-{
- "information_for_contributors": [
- "This file has been converted from https://github.com/zargony/atom-language-rust/blob/master/grammars/rust.cson",
- "If you want to provide a fix or improvement, please create a pull request against the original repository.",
- "Once accepted there, we are happy to receive an update request."
- ],
- "version": "https://github.com/zargony/atom-language-rust/commit/7d59e2ad79fbe5925bd2fd3bd3857bf9f421ff6f",
- "name": "Rust",
- "scopeName": "source.rust",
- "patterns": [
- {
- "comment": "Implementation",
- "begin": "\\b(impl)\\b",
- "end": "\\{",
- "beginCaptures": {
- "1": {
- "name": "storage.type.rust"
- }
- },
- "patterns": [
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_comment"
- },
- {
- "include": "#sigils"
- },
- {
- "include": "#mut"
- },
- {
- "include": "#dyn"
- },
- {
- "include": "#ref_lifetime"
- },
- {
- "include": "#core_types"
- },
- {
- "include": "#core_marker"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_types"
- },
- {
- "include": "#std_traits"
- },
- {
- "include": "#type_params"
- },
- {
- "include": "#where"
- },
- {
- "name": "storage.type.rust",
- "match": "\\bfor\\b"
- },
- {
- "include": "#type"
- }
- ]
- },
- {
- "include": "#block_doc_comment"
- },
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_doc_comment"
- },
- {
- "include": "#line_comment"
- },
- {
- "comment": "Attribute",
- "name": "meta.attribute.rust",
- "begin": "#\\!?\\[",
- "end": "\\]",
- "patterns": [
- {
- "include": "#string_literal"
- },
- {
- "include": "#block_doc_comment"
- },
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_doc_comment"
- },
- {
- "include": "#line_comment"
- }
- ]
- },
- {
- "comment": "Single-quote string literal (character)",
- "name": "string.quoted.single.rust",
- "match": "b?'([^'\\\\]|\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'"
- },
- {
- "include": "#string_literal"
- },
- {
- "include": "#raw_string_literal"
- },
- {
- "comment": "Floating point literal (fraction)",
- "name": "constant.numeric.float.rust",
- "match": "\\b[0-9][0-9_]*\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f32|f64)?\\b"
- },
- {
- "comment": "Floating point literal (exponent)",
- "name": "constant.numeric.float.rust",
- "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f32|f64)?\\b"
- },
- {
- "comment": "Floating point literal (typed)",
- "name": "constant.numeric.float.rust",
- "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f32|f64)\\b"
- },
- {
- "comment": "Integer literal (decimal)",
- "name": "constant.numeric.integer.decimal.rust",
- "match": "\\b[0-9][0-9_]*([ui](8|16|32|64|128|s|size))?\\b"
- },
- {
- "comment": "Integer literal (hexadecimal)",
- "name": "constant.numeric.integer.hexadecimal.rust",
- "match": "\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|128|s|size))?\\b"
- },
- {
- "comment": "Integer literal (octal)",
- "name": "constant.numeric.integer.octal.rust",
- "match": "\\b0o[0-7_]+([ui](8|16|32|64|128|s|size))?\\b"
- },
- {
- "comment": "Integer literal (binary)",
- "name": "constant.numeric.integer.binary.rust",
- "match": "\\b0b[01_]+([ui](8|16|32|64|128|s|size))?\\b"
- },
- {
- "comment": "Static storage modifier",
- "name": "storage.modifier.static.rust",
- "match": "\\bstatic\\b"
- },
- {
- "comment": "Boolean constant",
- "name": "constant.language.boolean.rust",
- "match": "\\b(true|false)\\b"
- },
- {
- "comment": "Control keyword",
- "name": "keyword.control.rust",
- "match": "\\b(async|await|break|continue|else|if|in|for|loop|match|return|try|while)\\b"
- },
- {
- "comment": "Keyword",
- "name": "keyword.other.rust",
- "match": "\\b(crate|extern|mod|let|ref|use|super|move)\\b"
- },
- {
- "comment": "Reserved keyword",
- "name": "invalid.deprecated.rust",
- "match": "\\b(abstract|alignof|become|do|final|macro|offsetof|override|priv|proc|pure|sizeof|typeof|virtual|yield)\\b"
- },
- {
- "include": "#unsafe"
- },
- {
- "include": "#sigils"
- },
- {
- "include": "#self"
- },
- {
- "include": "#mut"
- },
- {
- "include": "#dyn"
- },
- {
- "include": "#impl"
- },
- {
- "include": "#box"
- },
- {
- "include": "#lifetime"
- },
- {
- "include": "#ref_lifetime"
- },
- {
- "include": "#const"
- },
- {
- "include": "#pub"
- },
- {
- "comment": "Miscellaneous operator",
- "name": "keyword.operator.misc.rust",
- "match": "(=>|::|\\bas\\b)"
- },
- {
- "comment": "Comparison operator",
- "name": "keyword.operator.comparison.rust",
- "match": "(&&|\\|\\||==|!=)"
- },
- {
- "comment": "Assignment operator",
- "name": "keyword.operator.assignment.rust",
- "match": "(\\+=|-=|/=|\\*=|%=|\\^=|&=|\\|=|<<=|>>=|=)"
- },
- {
- "comment": "Arithmetic operator",
- "name": "keyword.operator.arithmetic.rust",
- "match": "(!|\\+|-|/|\\*|%|\\^|&|\\||<<|>>)"
- },
- {
- "comment": "Comparison operator (second group because of regex precedence)",
- "name": "keyword.operator.comparison.rust",
- "match": "(<=|>=|<|>)"
- },
- {
- "include": "#core_types"
- },
- {
- "include": "#core_vars"
- },
- {
- "include": "#core_marker"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_types"
- },
- {
- "include": "#std_traits"
- },
- {
- "comment": "Built-in macro",
- "name": "support.function.builtin.rust",
- "match": "\\b(macro_rules|compile_error|format_args|env|option_env|concat_idents|concat|line|column|file|stringify|include|include_str|include_bytes|module_path|cfg)!"
- },
- {
- "comment": "Core macro",
- "name": "support.function.core.rust",
- "match": "\\b(panic|assert|assert_eq|assert_ne|debug_assert|debug_assert_eq|debug_assert_ne|try|write|writeln|unreachable|unimplemented)!"
- },
- {
- "comment": "Standard library macro",
- "name": "support.function.std.rust",
- "match": "\\b(format|print|println|eprint|eprintln|select|vec)!"
- },
- {
- "comment": "Logging macro",
- "name": "support.function.log.rust",
- "match": "\\b(log|error|warn|info|debug|trace|log_enabled)!"
- },
- {
- "comment": "Invokation of a macro",
- "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*\\!)\\s*[({\\[]",
- "captures": {
- "1": {
- "name": "entity.name.function.macro.rust"
- }
- }
- },
- {
- "comment": "Function call",
- "match": "\\b([A-Za-z][A-Za-z0-9_]*|_[A-Za-z0-9_]+)\\s*\\(",
- "captures": {
- "1": {
- "name": "entity.name.function.rust"
- }
- }
- },
- {
- "comment": "Function call with type parameters",
- "begin": "\\b([A-Za-z][A-Za-z0-9_]*|_[A-Za-z0-9_]+)\\s*(::)(?=\\s*<.*>\\s*\\()",
- "end": "\\(",
- "captures": {
- "1": {
- "name": "entity.name.function.rust"
- },
- "2": {
- "name": "keyword.operator.misc.rust"
- }
- },
- "patterns": [
- {
- "include": "#type_params"
- }
- ]
- },
- {
- "comment": "Function definition",
- "begin": "\\b(fn)\\s+([A-Za-z][A-Za-z0-9_]*|_[A-Za-z0-9_]+)",
- "end": "[\\{;]",
- "beginCaptures": {
- "1": {
- "name": "keyword.other.fn.rust"
- },
- "2": {
- "name": "entity.name.function.rust"
- }
- },
- "patterns": [
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_comment"
- },
- {
- "include": "#sigils"
- },
- {
- "include": "#self"
- },
- {
- "include": "#mut"
- },
- {
- "include": "#dyn"
- },
- {
- "include": "#impl"
- },
- {
- "include": "#ref_lifetime"
- },
- {
- "include": "#core_types"
- },
- {
- "include": "#core_marker"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_types"
- },
- {
- "include": "#std_traits"
- },
- {
- "include": "#type_params"
- },
- {
- "include": "#const"
- },
- {
- "include": "#where"
- },
- {
- "include": "#unsafe"
- },
- {
- "comment": "Function arguments",
- "match": "\bfn\b",
- "name": "keyword.other.fn.rust"
- }
- ]
- },
- {
- "comment": "Type declaration",
- "begin": "\\b(enum|struct|trait|union)\\s+([a-zA-Z_][a-zA-Z0-9_]*)",
- "end": "[\\{\\(;]",
- "beginCaptures": {
- "1": {
- "name": "storage.type.rust"
- },
- "2": {
- "name": "entity.name.type.rust"
- }
- },
- "patterns": [
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_comment"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_traits"
- },
- {
- "include": "#type_params"
- },
- {
- "include": "#core_types"
- },
- {
- "include": "#pub"
- },
- {
- "include": "#where"
- }
- ]
- },
- {
- "comment": "Type alias",
- "begin": "\\b(type)\\s+([a-zA-Z_][a-zA-Z0-9_]*)",
- "end": ";",
- "beginCaptures": {
- "1": {
- "name": "storage.type.rust"
- },
- "2": {
- "name": "entity.name.type.rust"
- }
- },
- "patterns": [
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_comment"
- },
- {
- "include": "#sigils"
- },
- {
- "include": "#mut"
- },
- {
- "include": "#dyn"
- },
- {
- "include": "#impl"
- },
- {
- "include": "#lifetime"
- },
- {
- "include": "#ref_lifetime"
- },
- {
- "include": "#core_types"
- },
- {
- "include": "#core_marker"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_types"
- },
- {
- "include": "#std_traits"
- },
- {
- "include": "#type_params"
- }
- ]
- }
- ],
- "repository": {
- "block_doc_comment": {
- "comment": "Block documentation comment",
- "name": "comment.block.documentation.rust",
- "begin": "/\\*[\\*!](?![\\*/])",
- "end": "\\*/",
- "patterns": [
- {
- "include": "#block_doc_comment"
- },
- {
- "include": "#block_comment"
- }
- ]
- },
- "block_comment": {
- "comment": "Block comment",
- "name": "comment.block.rust",
- "begin": "/\\*",
- "end": "\\*/",
- "patterns": [
- {
- "include": "#block_doc_comment"
- },
- {
- "include": "#block_comment"
- }
- ]
- },
- "line_doc_comment": {
- "comment": "Single-line documentation comment",
- "name": "comment.line.documentation.rust",
- "begin": "//[!/](?=[^/])",
- "end": "$"
- },
- "line_comment": {
- "comment": "Single-line comment",
- "name": "comment.line.double-slash.rust",
- "begin": "//",
- "end": "$"
- },
- "escaped_character": {
- "name": "constant.character.escape.rust",
- "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"
- },
- "string_literal": {
- "comment": "Double-quote string literal",
- "name": "string.quoted.double.rust",
- "begin": "b?\"",
- "end": "\"",
- "patterns": [
- {
- "include": "#escaped_character"
- }
- ]
- },
- "raw_string_literal": {
- "comment": "Raw double-quote string literal",
- "name": "string.quoted.double.raw.rust",
- "begin": "b?r(#*)\"",
- "end": "\"\\1"
- },
- "sigils": {
- "comment": "Sigil",
- "name": "keyword.operator.sigil.rust",
- "match": "[&*](?=[a-zA-Z0-9_\\(\\[\\|\\\"]+)"
- },
- "self": {
- "comment": "Self variable",
- "name": "variable.language.rust",
- "match": "\\bself\\b"
- },
- "mut": {
- "comment": "Mutable storage modifier",
- "name": "storage.modifier.mut.rust",
- "match": "\\bmut\\b"
- },
- "dyn": {
- "comment": "Dynamic modifier",
- "name": "storage.modifier.dyn.rust",
- "match": "\\bdyn\\b"
- },
- "impl": {
- "comment": "Existential type modifier",
- "name": "storage.modifier.impl.rust",
- "match": "\\bimpl\\b"
- },
- "box": {
- "comment": "Box storage modifier",
- "name": "storage.modifier.box.rust",
- "match": "\\bbox\\b"
- },
- "const": {
- "comment": "Const storage modifier",
- "name": "storage.modifier.const.rust",
- "match": "\\bconst\\b"
- },
- "pub": {
- "comment": "Visibility modifier",
- "name": "storage.modifier.visibility.rust",
- "match": "\\bpub\\b"
- },
- "unsafe": {
- "comment": "Unsafe code keyword",
- "name": "keyword.other.unsafe.rust",
- "match": "\\bunsafe\\b"
- },
- "where": {
- "comment": "Generic where clause",
- "name": "keyword.other.where.rust",
- "match": "\\bwhere\\b"
- },
- "lifetime": {
- "comment": "Named lifetime",
- "name": "storage.modifier.lifetime.rust",
- "match": "'([a-zA-Z_][a-zA-Z0-9_]*)\\b",
- "captures": {
- "1": {
- "name": "entity.name.lifetime.rust"
- }
- }
- },
- "ref_lifetime": {
- "comment": "Reference with named lifetime",
- "match": "&('([a-zA-Z_][a-zA-Z0-9_]*))\\b",
- "captures": {
- "1": {
- "name": "storage.modifier.lifetime.rust"
- },
- "2": {
- "name": "entity.name.lifetime.rust"
- }
- }
- },
- "core_types": {
- "comment": "Built-in/core type",
- "name": "storage.type.core.rust",
- "match": "\\b(bool|char|usize|isize|u8|u16|u32|u64|u128|i8|i16|i32|i64|i128|f32|f64|str|Self|Option|Result)\\b"
- },
- "core_vars": {
- "comment": "Core type variant",
- "name": "support.constant.core.rust",
- "match": "\\b(Some|None|Ok|Err)\\b"
- },
- "core_marker": {
- "comment": "Core trait (marker)",
- "name": "support.type.marker.rust",
- "match": "\\b(Copy|Send|Sized|Sync)\\b"
- },
- "core_traits": {
- "comment": "Core trait",
- "name": "support.type.core.rust",
- "match": "\\b(Drop|Fn|FnMut|FnOnce|Clone|PartialEq|PartialOrd|Eq|Ord|AsRef|AsMut|Into|From|Default|Iterator|Extend|IntoIterator|DoubleEndedIterator|ExactSizeIterator)\\b"
- },
- "std_types": {
- "comment": "Standard library type",
- "name": "storage.class.std.rust",
- "match": "\\b(Box|String|Vec|Path|PathBuf)\\b"
- },
- "std_traits": {
- "comment": "Standard library trait",
- "name": "support.type.std.rust",
- "match": "\\b(ToOwned|ToString)\\b"
- },
- "type": {
- "comment": "A type",
- "name": "entity.name.type.rust",
- "match": "\\b([A-Za-z][_A-Za-z0-9]*|_[_A-Za-z0-9]+)\\b"
- },
- "type_params": {
- "comment": "Type parameters",
- "name": "meta.type_params.rust",
- "begin": "<(?![=<])",
- "end": "(?",
- "patterns": [
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_comment"
- },
- {
- "include": "#sigils"
- },
- {
- "include": "#mut"
- },
- {
- "include": "#dyn"
- },
- {
- "include": "#impl"
- },
- {
- "include": "#lifetime"
- },
- {
- "include": "#core_types"
- },
- {
- "include": "#core_marker"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_types"
- },
- {
- "include": "#std_traits"
- },
- {
- "include": "#type_params"
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/org.eclipse.corrosion/icons/rustEditorIcon.png b/org.eclipse.corrosion/icons/rustEditorIcon.png
deleted file mode 100644
index 218795ec..00000000
Binary files a/org.eclipse.corrosion/icons/rustEditorIcon.png and /dev/null differ
diff --git a/org.eclipse.corrosion/icons/rustEditorIcon@2x.png b/org.eclipse.corrosion/icons/rustEditorIcon@2x.png
deleted file mode 100644
index 284fb955..00000000
Binary files a/org.eclipse.corrosion/icons/rustEditorIcon@2x.png and /dev/null differ
diff --git a/org.eclipse.corrosion/language-configurations/language-configuration.json b/org.eclipse.corrosion/language-configurations/language-configuration.json
deleted file mode 100644
index c062fec1..00000000
--- a/org.eclipse.corrosion/language-configurations/language-configuration.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "comments": {
- "lineComment": "//",
- "blockComment": [ "/*", "*/" ]
- },
- "brackets": [
- ["{", "}"],
- ["[", "]"],
- ["(", ")"],
- ["<", ">"]
- ],
- "autoClosingPairs": [
- { "open": "{", "close": "}" },
- { "open": "[", "close": "]" },
- { "open": "(", "close": ")" },
- { "open": "\"", "close": "\"", "notIn": ["string"] },
- { "open": "/**", "close": " */", "notIn": ["string"] },
- { "open": "/*!", "close": " */", "notIn": ["string"] }
- ],
- "surroundingPairs": [
- ["{", "}"],
- ["[", "]"],
- ["(", ")"],
- ["<", ">"],
- ["'", "'"],
- ["\"", "\""]
- ],
- "onEnterRules":[
- {"beforeText": "^\\s*/{3}.*$", "action": { "indent": "none", "appendText": "/// " }},
- {"beforeText": "^\\s*/{2}\\!.*$", "action": { "indent": "none", "appendText": "//! " }},
- {"beforeText": "^\\s*/\\*(\\*|\\!)(?!/)([^\\*]|\\*(?!/))*$", "afterText": "^\\s*\\*/$", "action": { "indent": "indentOutdent", "appendText": " * " }},
- {"beforeText": "^\\s*/\\*(\\*|\\!)(?!/)([^\\*]|\\*(?!/))*$", "action": { "indent": "none", "appendText": " * " }},
- {"beforeText": "^(\\ \\ )*\\ \\*(\\ ([^\\*]|\\*(?!/))*)?$", "action": { "indent": "none", "appendText": " * " }},
- {"beforeText": "^(\\ \\ )*\\ \\*/\\s*$", "action": { "indent": "none", "removeText": 1 }}
- ]
-}
diff --git a/org.eclipse.corrosion/plugin.xml b/org.eclipse.corrosion/plugin.xml
index b33169de..94f94996 100644
--- a/org.eclipse.corrosion/plugin.xml
+++ b/org.eclipse.corrosion/plugin.xml
@@ -10,13 +10,6 @@
name="%toml.content-type.name"
priority="normal">
-
-
-
-
@@ -46,20 +35,12 @@
serverInterface="org.eclipse.corrosion.edit.RLSServerInterface">
-
-
-
-
@@ -69,18 +50,11 @@
scopeName="source.toml">
-
-
-
-
+ contentType="org.eclipse.tm4e.language_pack.rust">
-
-
-
-
@@ -424,7 +391,7 @@
point="org.eclipse.compare.contentMergeViewers">
+ contentTypeId="org.eclipse.tm4e.language_pack.rust">
-
-
-
-
+