--HG--
branch : pmacs2
This commit is contained in:
~d6 2021-12-12 15:55:58 -05:00
commit 326a9c3409
1 changed files with 10 additions and 32 deletions

View File

@ -1,38 +1,8 @@
import os.path import os.path
#from subprocess import Popen, PIPE, STDOUT
#from method import Method, arg
#from method.shell import Exec
#from method.tags import InitTags
from mode import Fundamental from mode import Fundamental
import tab import tab
#import completer
from lex import Grammar, PatternRule, RegionRule, PatternMatchRule, OverridePatternRule from lex import Grammar, PatternRule, RegionRule, PatternMatchRule, OverridePatternRule
from mode.python import StringGrammar2 from mode.python import StringGrammar2
#from etags import TagManager
#class CommentGrammar(Grammar):
# rules = [
# PatternRule(r'data', r'(?:[^\*]|\*(?!/))+'),
# ]
#
#class ErrorGrammar(Grammar):
# rules = [
# PatternRule(r'data', r'[^\\\n]+'),
# PatternRule('continuation', r'\\\n$'),
# ]
#class MacroGrammar(Grammar):
# rules = [
# PatternRule('continuation', r'\\\n$'),
# PatternRule('name', '(?<=#define ) *' + word),
# PatternRule('name', '(?<=#ifdef ) *' + word),
# PatternRule('name', '(?<=#ifndef ) *' + word),
# PatternRule('name', '(?<=#undef ) *' + word),
# PatternRule('concat', '##' + chr2 + '+'),
# PatternRule('quoted', '#' + chr2 + '+'),
# PatternMatchRule('x', r'(defined)(\()(' + word + r')(\))',
# 'function', 'delimiter', 'name', 'delimiter'),
# ]
chr1 = '[a-zA-Z_]' chr1 = '[a-zA-Z_]'
chr2 = '[a-zA-Z0-9_]' chr2 = '[a-zA-Z0-9_]'
@ -66,7 +36,15 @@ class RustGrammar(Grammar):
PatternRule("rust.float", r"-?[0-9]+\.[0-9]+|-?\.[0-9]+|-?(?:[0-9]|[0-9]+\.[0-9]*|-?\.[0-9]+)[eE][\+-]?[0-9]+"), PatternRule("rust.float", r"-?[0-9]+\.[0-9]+|-?\.[0-9]+|-?(?:[0-9]|[0-9]+\.[0-9]*|-?\.[0-9]+)[eE][\+-]?[0-9]+"),
PatternRule("rust.integer", r"(?:0(?![x0-9])|-?[1-9][0-9]*|0[0-7]+|0[xX][0-9a-fA-F]+)[lL]?"), PatternRule("rust.integer", r"(?:0(?![x0-9])|-?[1-9][0-9]*|0[0-7]+|0[xX][0-9a-fA-F]+)[lL]?"),
PatternRule('rust.keyword', r"(?:fn)(?!" + chr2 + ")"), #PatternRule('rust.keyword', r"(?<=[a-zA-Z0-9_])(?:while|where|use|unsafe|type|true|trait|super|struct|static|Self|self|return|ref|pub|mut|move|mod|match|loop|let|in|impl|if|for|fn|false|extern|enum|else|dyn|crate|continue|const|break|await|async|as)"),
PatternRule('rust.keyword', r"(?<![a-zA-Z0-9_])(?:while|where|use|unsafe|type|true|trait|super|struct|static|Self|self|return|ref|pub|mut|move|mod|match|loop|let|in|impl|if|for|fn|false|extern|enum|else|dyn|crate|continue|const|break|await|async|as)(?![a-zA-Z0-9_])"),
PatternRule('rust.reserved', r"(?<![a-zA-Z0-9_])(?:yield|virtual|unsized|typeof|try|priv|override|macro|final|do|box|become|abstract)(?![a-zA-Z0-9_])"),
# weak keywords
PatternRule('rust.keyword', r"(?<![a-zA-Z0-9_])(?:union|'static)(?![a-zA-Z0-9_])"),
PatternRule('rust.method', r"(?:fn)(?!" + chr2 + ")"),
PatternRule('rust.delimiter', r"[;\(\){}\[\]]"), PatternRule('rust.delimiter', r"[;\(\){}\[\]]"),
PatternRule('rust.delimiter', r"(?:->|\.\.|%|==)"), PatternRule('rust.delimiter', r"(?:->|\.\.|%|==)"),
@ -118,7 +96,7 @@ hi_blue = ('blue225', 'default')
class Rust(Fundamental): class Rust(Fundamental):
name = 'rust' name = 'rust'
extensions = ['.rust'] extensions = ['.rs']
grammar = RustGrammar grammar = RustGrammar
opentokens = ('delimiter',) opentokens = ('delimiter',)
opentags = {'(': ')', '[': ']', '{': '}'} opentags = {'(': ')', '[': ']', '{': '}'}