From 439be036345fa4475645698df854be89f9fbbe44 Mon Sep 17 00:00:00 2001 From: sharkdp Date: Sun, 15 Mar 2020 14:20:40 +0100 Subject: [PATCH] Remove duplicate F# syntax --- assets/syntaxes/FSharp.sublime-syntax | 672 -------------------------- 1 file changed, 672 deletions(-) delete mode 100644 assets/syntaxes/FSharp.sublime-syntax diff --git a/assets/syntaxes/FSharp.sublime-syntax b/assets/syntaxes/FSharp.sublime-syntax deleted file mode 100644 index d7fb5257..00000000 --- a/assets/syntaxes/FSharp.sublime-syntax +++ /dev/null @@ -1,672 +0,0 @@ -%YAML 1.2 ---- -# http://www.sublimetext.com/docs/3/syntax.html -name: "F#" -file_extensions: - - fs - - fsi - - fsx -scope: source.fsharp -contexts: - main: - - include: compiler_directives - - include: comments - - include: constants - - include: strings - - include: chars - - include: double_tick - - include: definition - - include: abstract_definition - - include: attributes - - include: modules - - include: anonymous_functions - - include: du_declaration - - include: record_declaration - - include: records - - include: strp_inlined - - include: keywords - - include: cexprs - - include: text - abstract_definition: - - match: '\b(abstract)\s+(member)?(\s+\[\<.*\>\])?\s*([_[:alpha:]0-9,\._`\s]+)(:)' - captures: - 1: keyword.fsharp - 2: keyword.fsharp - 3: support.function.attribute.fsharp - 5: keyword.fsharp - push: - - meta_scope: abstract.definition.fsharp - - match: \s*(with)\b|=|$ - captures: - 1: keyword.fsharp - pop: true - - include: comments - - include: common_declaration - - match: '(\?{0,1})([[:alpha:]0-9''`^._ ]+)\s*(:)(\s*([[:alpha:]0-9''`^._ ]+)){0,1}' - captures: - 1: keyword.symbol.fsharp - 2: variable.parameter.fsharp - 3: keyword.symbol.fsharp - 4: entity.name.type.fsharp - - match: '(?!with|get|set\b)\b([\w0-9''`^._]+)' - captures: - 1: entity.name.type.fsharp - - include: keywords - anonymous_functions: - - match: \b(fun)\b - captures: - 1: keyword.fsharp - push: - - meta_scope: function.anonymous - - match: (->) - captures: - 1: keyword.fsharp - pop: true - - include: comments - - match: (\() - captures: - 1: keyword.symbol.fsharp - push: - - match: \s*(?=(->)) - captures: - 1: keyword.symbol.fsharp - pop: true - - include: member_declaration - - include: variables - attributes: - - match: '\[\<' - push: - - meta_scope: support.function.attribute.fsharp - - match: '\>\]|\]' - pop: true - - include: main - cexprs: - - match: '\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)\s*\{' - scope: cexpr.fsharp - captures: - 0: keyword.fsharp - chars: - - match: ('\\?.') - scope: char.fsharp - captures: - 1: string.quoted.single.fsharp - comments: - - match: (\(\*(?!\))) - captures: - 1: comment.block.fsharp - push: - - meta_scope: comment.block.fsharp - - match: (\*\)) - captures: - 1: comment.block.fsharp - pop: true - - match: //.*$ - scope: comment.line.double-slash.fsharp - common_binding_definition: - - include: comments - - include: attributes - - match: (:)\s*(\()\s*(static member|member) - captures: - 1: keyword.symbol.fsharp - 2: keyword.symbol.fsharp - 3: keyword.fsharp - push: - - match: (\))\s*((?=,)|(?=\=)) - captures: - 1: keyword.symbol.fsharp - pop: true - - match: '(\^[[:alpha:]0-9''._]+)' - captures: - 1: entity.name.type.fsharp - - include: variables - - include: keywords - - match: (:)\s*(\() - captures: - 1: keyword.symbol.fsharp - 2: keyword.symbol.fsharp - push: - - match: '(\)\s*(([?[:alpha:]0-9''`^._ ]*)))' - captures: - 1: keyword.symbol.fsharp - 2: entity.name.type.fsharp - pop: true - - include: tuple_signature - - match: '(:)\s*(\^[[:alpha:]0-9''._]+)\s*(when)' - captures: - 1: keyword.symbol.fsharp - 2: entity.name.type.fsharp - 3: keyword.fsharp - push: - - match: (?=:) - captures: - 1: keyword.symbol.fsharp - pop: true - - match: \b(and|when|or)\b - scope: keyword.fsharp - - match: "([[:alpha:]0-9'^._]+)" - comment: Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition - captures: - 1: entity.name.type.fsharp - - match: (\(|\)) - scope: keyword.symbol.fsharp - - match: '(:)\s*([?[:alpha:]0-9''`^._ ]+)' - captures: - 1: keyword.symbol.fsharp - 2: entity.name.type.fsharp - - match: '(->)\s*(\()?\s*([?[:alpha:]0-9''`^._ ]+)*' - captures: - 1: keyword.symbol.fsharp - 2: keyword.symbol.fsharp - 3: entity.name.type.fsharp - - match: (\*)\s*(\() - captures: - 1: keyword.symbol.fsharp - 2: keyword.symbol.fsharp - push: - - match: '(\)\s*(([?[:alpha:]0-9''`^._ ]+))+)' - captures: - 1: keyword.symbol.fsharp - 2: entity.name.type.fsharp - pop: true - - include: tuple_signature - - match: '(\*)(\s*([?[:alpha:]0-9''`^._ ]+))*' - captures: - 1: keyword.symbol.fsharp - 2: entity.name.type.fsharp - - match: '(<(?![[:space:]]*\)))' - captures: - 1: keyword.symbol.fsharp - push: - - match: ((?) - captures: - 1: keyword.symbol.fsharp - pop: true - - include: generic_declaration - - match: "({)" - captures: - 1: keyword.symbol.fsharp - push: - - match: "(})" - captures: - 1: keyword.symbol.fsharp - pop: true - - include: record_signature - - include: definition - - include: variables - - include: keywords - common_declaration: - - match: '\s*(->)\s*([[:alpha:]0-9''`^._ ]+)(<)' - captures: - 1: keyword.symbol.fsharp - 2: entity.name.type.fsharp - 3: keyword.symbol.fsharp - push: - - match: (>) - captures: - 1: keyword.symbol.fsharp - pop: true - - match: "([[:alpha:]0-9'`^._ ]+)" - captures: - 1: entity.name.type.fsharp - - include: keywords - - match: '\s*(->)\s*(?!with|get|set\b)\b([\w0-9''`^._]+)' - captures: - 1: keyword.symbol.fsharp - 2: entity.name.type.fsharp - - match: '(\?{0,1})([[:alpha:]0-9''`^._ ]+)\s*(:)(\s*([?[:alpha:]0-9''`^._ ]+)(<))' - captures: - 1: keyword.symbol.fsharp - 2: variable.parameter.fsharp - 3: keyword.symbol.fsharp - 4: keyword.symbol.fsharp - 5: entity.name.type.fsharp - push: - - match: (>) - captures: - 1: keyword.symbol.fsharp - pop: true - - match: "([[:alpha:]0-9'`^._ ]+)" - captures: - 1: entity.name.type.fsharp - - include: keywords - compiler_directives: - - match: \s?(#if|#elif|#else|#elseif|#endif|#light|#nowarn) - scope: compiler_directive.fsharp - captures: - constants: - - match: \(\) - scope: constant.language.unit.fsharp - - match: '\b-?[0-9][0-9_]*((\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))' - scope: constant.numeric.floating-point.fsharp - - match: '\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))' - scope: constant.numeric.integer.nativeint.fsharp - - match: \b(true|false|null|unit)\b - scope: constant.others.fsharp - definition: - - match: '\b(let mutable|static let mutable|let inline|let|member val|static member inline|static member|default|member|override|let!)(\s+rec|mutable)?(\s+\[\<.*\>\])?\s*(private|internal|public)?\s+(\[[^-=]*\]|[_[:alpha:]]([_[:alpha:]0-9,\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\._`\s]+|(?<=,)\s)*)?' - captures: - 1: keyword.fsharp - 2: keyword.fsharp - 3: support.function.attribute.fsharp - 4: keyword.fsharp - 5: variable.fsharp - push: - - meta_scope: binding.fsharp - - match: \s*(with\b|=|\n+=|(?<=\=)) - captures: - 1: keyword.fsharp - pop: true - - include: common_binding_definition - - match: '\b(static val mutable|val mutable|val)(\s+rec|mutable)?(\s+\[\<.*\>\])?\s*(private|internal|public)?\s+(\[[^-=]*\]|[_[:alpha:]]([_[:alpha:]0-9,\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\._`\s]+|(?<=,)\s)*)?' - captures: - 1: keyword.fsharp - 2: keyword.fsharp - 3: support.function.attribute.fsharp - 4: keyword.fsharp - 5: variable.fsharp - push: - - meta_scope: binding.fsharp - - match: \n$ - pop: true - - include: common_binding_definition - double_tick: - - match: (``)(.*)(``) - scope: variable.other.binding.fsharp - captures: - 1: string.quoted.single.fsharp - 2: variable.other.binding.fsharp - 3: string.quoted.single.fsharp - du_declaration: - - match: \b(of)\b - captures: - 1: keyword.fsharp - push: - - meta_scope: du_declaration.fsharp - - match: $|(\|) - captures: - 1: keyword.symbol.fsharp - pop: true - - include: comments - - match: '([[:alpha:]0-9''`<>^._]+|``[[:alpha:]0-9'' <>^._]+``)\s*(:)\s*([[:alpha:]0-9''`<>^._]+|``[[:alpha:]0-9'' <>^._]+``)' - captures: - 1: variable.parameter.fsharp - 2: keyword.symbol.fsharp - 3: entity.name.type.fsharp - - match: "([[:alpha:]0-9'`^._]+)|``([[:alpha:]0-9'^._ ]+)``" - captures: - 1: entity.name.type.fsharp - - include: keywords - generic_declaration: - - match: (:)\s*(\()\s*(static member|member) - captures: - 1: keyword.symbol.fsharp - 2: keyword.symbol.fsharp - 3: keyword.fsharp - push: - - match: (\)) - captures: - 1: keyword.symbol.fsharp - pop: true - - match: (\() - captures: - 1: keyword.symbol.fsharp - push: - - match: (\)) - captures: - 1: keyword.symbol.fsharp - pop: true - - include: member_declaration - - match: '((''|\^)[[:alpha:]0-9''._]+)' - captures: - 1: entity.name.type.fsharp - - include: variables - - include: keywords - - match: \b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\!|return\!|return|interface|with|abstract|property|union|enum|member|try|finally|and|when|use|use\!|struct|while|mutable)(?!')\b - scope: keyword.fsharp - - match: ":" - scope: keyword.fsharp - - include: constants - - match: '((''|\^)[[:alpha:]0-9''._]+)' - captures: - 1: entity.name.type.fsharp - - match: (<) - captures: - 1: keyword.symbol.fsharp - push: - - match: (>) - captures: - 1: keyword.symbol.fsharp - pop: true - - match: '((''|\^)[[:alpha:]0-9''._]+)' - captures: - 1: entity.name.type.fsharp - - include: tuple_signature - - include: generic_declaration - - match: '(?!when|and|or\b)\b([\w0-9''`^._]+)' - captures: - 1: entity.name.type.fsharp - - match: (\|) - captures: - 1: keyword.symbol.fsharp - - include: keywords - keywords: - - match: \b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\!|return\!|return|interface|with|abstract|property|union|enum|member|try|finally|and|when|or|use|use\!|struct|while|mutable)(?!')\b - scope: keyword.fsharp - - match: '(&&&|\|\|\||\^\^\^|~~~|<<<|>>>|\|>|\->|\<\-|:>|:\?>|:|\[|\]|\;|<>|=|@|\|\||&&|{|}|\||_|\.\.|\,|\+|\-|\*|\/|\^|\!|\>|\>\=|\>\>|\<|\<\=|\(|\)|\<\<)' - scope: keyword.symbol.fsharp - member_declaration: - - include: comments - - include: common_declaration - - match: (:)\s*(\()\s*(static member|member) - captures: - 1: keyword.symbol.fsharp - 2: keyword.symbol.fsharp - 3: keyword.fsharp - push: - - match: (\))\s*((?=,)|(?=\=)) - captures: - 1: keyword.symbol.fsharp - pop: true - - match: (\() - captures: - 1: keyword.symbol.fsharp - push: - - match: (\)) - captures: - 1: keyword.symbol.fsharp - pop: true - - include: member_declaration - - match: '(\^[[:alpha:]0-9''._]+)' - captures: - 1: entity.name.type.fsharp - - include: variables - - include: keywords - - match: '(\^[[:alpha:]0-9''._]+)' - captures: - 1: entity.name.type.fsharp - - match: \b(and|when|or)\b - scope: keyword.fsharp - - match: (\(|\)) - scope: keyword.symbol.fsharp - - match: '(\?{0,1})([[:alpha:]0-9''`^._]+|``[[:alpha:]0-9''`^:,._ ]+``)\s*(:{0,1})(\s*([?[:alpha:]0-9''`<>._ ]+)){0,1}' - captures: - 1: keyword.symbol.fsharp - 2: variable.parameter.fsharp - 3: keyword.symbol.fsharp - 4: entity.name.type.fsharp - - include: keywords - modules: - - match: '\b(namespace|module)\s*(public|internal|private)?\s+([[:alpha:]][[:alpha:]0-9''_. ]*)' - captures: - 1: keyword.fsharp - 2: keyword.fsharp - 3: entity.name.section.fsharp - push: - - meta_scope: entity.name.section.fsharp - - match: (\s?=|\s|$) - captures: - 1: keyword.symbol.fsharp - pop: true - - match: '(\.)([A-Z][[:alpha:]0-9''_]*)' - scope: entity.name.section.fsharp - captures: - 1: punctuation.separator.namespace-reference.fsharp - 2: entity.name.section.fsharp - - match: '\b(open)\s+([[:alpha:]][[:alpha:]0-9''_]*)(?=(\.[A-Z][[:alpha:]0-9_]*)*)' - captures: - 1: keyword.fsharp - 2: entity.name.section.fsharp - push: - - meta_scope: namespace.open.fsharp - - match: (\s|$) - pop: true - - match: '(\.)([[:alpha:]][[:alpha:]0-9''_]*)' - scope: entity.name.section.fsharp - captures: - 1: punctuation.separator.namespace-reference.fsharp - 2: entity.name.section.fsharp - - match: '^\s*(module)\s+([A-Z][[:alpha:]0-9''_]*)\s*(=)\s*([A-Z][[:alpha:]0-9''_]*)' - captures: - 1: keyword.fsharp - 2: entity.name.type.namespace.fsharp - 3: punctuation.separator.namespace-definition.fsharp - 4: entity.name.section.fsharp - push: - - meta_scope: namespace.alias.fsharp - - match: (\s|$) - pop: true - - match: '(\.)([A-Z][[:alpha:]0-9''_]*)' - scope: entity.name.section.fsharp - captures: - 1: punctuation.separator.namespace-reference.fsharp - 2: entity.name.section.fsharp - record_declaration: - - match: '(\{)' - captures: - 1: keyword.symbol.fsharp - push: - - match: '(?<=\})' - pop: true - - include: comments - - match: '(((mutable)\s[[:alpha:]]+)|[[:alpha:]0-9''`<>^._]*)\s*((?) - captures: - 1: keyword.fsharp - pop: true - - match: '((''|\^)``[[:alpha:]0-9`^:,._ ]+``|(''|\^)[[:alpha:]0-9`^:._]+)' - captures: - 1: entity.name.type.fsharp - - match: \b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\b - scope: keyword.fsharp - - match: (\() - captures: - 1: keyword.symbol.fsharp - push: - - match: (\)) - captures: - 1: keyword.symbol.fsharp - pop: true - - match: (static member|member|new) - captures: - 1: keyword.fsharp - - include: common_binding_definition - - match: '([\w0-9''`^._]+)' - captures: - 1: entity.name.type.fsharp - - include: keywords - - match: \s*(private|internal|public) - captures: - 1: keyword.symbol.fsharp - 2: keyword.fsharp - - match: (\() - captures: - 1: keyword.symbol.fsharp - push: - - match: '\s*(?=(=)|[\n=]|(\(\))|(as))' - captures: - 1: keyword.symbol.fsharp - pop: true - - include: member_declaration - - include: keywords - string_formatter: - - match: (%0?-?(\d+)?((a|t)|(\.\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\+?A))) - scope: entity.name.type.format.specifier.fsharp - captures: - 1: keyword.format.specifier.fsharp - strings: - - match: '(?=[^\\])(@")' - captures: - 1: punctuation.definition.string.begin.fsharp - push: - - meta_scope: string.quoted.literal.fsharp - - match: (")(?!") - captures: - 1: punctuation.definition.string.end.fsharp - pop: true - - match: '"(")' - scope: constant.character.string.escape.fsharp - - match: '(?=[^\\])(""")' - captures: - 1: punctuation.definition.string.begin.fsharp - push: - - meta_scope: string.quoted.triple.fsharp - - match: (""") - captures: - 1: punctuation.definition.string.end.fsharp - pop: true - - include: string_formatter - - match: '(?=[^\\])(")' - captures: - 1: punctuation.definition.string.begin.fsharp - push: - - meta_scope: string.quoted.double.fsharp - - match: (") - captures: - 1: punctuation.definition.string.end.fsharp - pop: true - - match: '\\$[ \t]*' - scope: punctuation.separator.string.ignore-eol.fsharp - - match: '\\([\\''''ntbr]|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8})' - scope: constant.character.string.escape.fsharp - - match: '\\(?![\\''''ntbr]|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8}).' - scope: invalid.illeagal.character.string.fsharp - - include: string_formatter - strp_inlined: - - match: (\() - captures: - 1: keyword.symbol.fsharp - push: - - match: (\)) - captures: - 1: keyword.symbol.fsharp - pop: true - - include: strp_inlined_body - strp_inlined_body: - - include: comments - - include: anonymous_functions - - match: '(\^[[:alpha:]0-9''._]+)' - captures: - 1: entity.name.type.fsharp - - match: \b(and|when|or)\b - scope: keyword.fsharp - - match: (\() - captures: - 1: keyword.symbol.fsharp - push: - - match: (\)) - captures: - 1: keyword.symbol.fsharp - pop: true - - include: strp_inlined_body - - match: '(static member|member)\s*([[:alpha:]0-9''`<>^._]+|``[[:alpha:]0-9'' <>^._]+``)\s*(:)' - captures: - 1: keyword.fsharp - 2: variable.fsharp - 3: keyword.symbol.fsharp - - include: compiler_directives - - include: constants - - include: strings - - include: chars - - include: double_tick - - include: keywords - - include: text - - include: definition - - include: attributes - - include: keywords - - include: cexprs - - include: text - text: - - match: \\ - scope: text.fsharp - tuple_signature: - - match: "(([?[:alpha:]0-9'`^._ ]+))+" - captures: - 1: entity.name.type.fsharp - - match: (\() - captures: - 1: keyword.symbol.fsharp - push: - - match: (\)) - captures: - 1: keyword.symbol.fsharp - pop: true - - match: "(([?[:alpha:]0-9'`^._ ]+))+" - captures: - 1: entity.name.type.fsharp - - include: tuple_signature - - include: keywords - variables: - - match: \(\) - scope: constant.language.unit.fsharp - - match: '(\?{0,1})(``[[:alpha:]0-9''`^:,._ ]+``|[[:alpha:]0-9''`<>^._ ]\w*)' - captures: - 1: keyword.symbol.fsharp - 2: variable.parameter.fsharp