3 pygments.lexers.dotnet |
3 pygments.lexers.dotnet |
4 ~~~~~~~~~~~~~~~~~~~~~~ |
4 ~~~~~~~~~~~~~~~~~~~~~~ |
5 |
5 |
6 Lexers for .net languages. |
6 Lexers for .net languages. |
7 |
7 |
8 :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. |
8 :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS. |
9 :license: BSD, see LICENSE for details. |
9 :license: BSD, see LICENSE for details. |
10 """ |
10 """ |
11 import re |
11 import re |
12 |
12 |
13 from pygments.lexer import RegexLexer, DelegatingLexer, bygroups, include, \ |
13 from pygments.lexer import RegexLexer, DelegatingLexer, bygroups, include, \ |
14 using, this, default, words |
14 using, this, default, words |
15 from pygments.token import Punctuation, \ |
15 from pygments.token import Punctuation, \ |
16 Text, Comment, Operator, Keyword, Name, String, Number, Literal, Other |
16 Text, Comment, Operator, Keyword, Name, String, Number, Literal, Other |
17 from pygments.util import get_choice_opt, iteritems |
17 from pygments.util import get_choice_opt |
18 from pygments import unistring as uni |
18 from pygments import unistring as uni |
19 |
19 |
20 from pygments.lexers.html import XmlLexer |
20 from pygments.lexers.html import XmlLexer |
21 |
21 |
22 __all__ = ['CSharpLexer', 'NemerleLexer', 'BooLexer', 'VbNetLexer', |
22 __all__ = ['CSharpLexer', 'NemerleLexer', 'BooLexer', 'VbNetLexer', |
182 } |
182 } |
183 |
183 |
184 tokens = {} |
184 tokens = {} |
185 token_variants = True |
185 token_variants = True |
186 |
186 |
187 for levelname, cs_ident in iteritems(levels): |
187 for levelname, cs_ident in levels.items(): |
188 tokens[levelname] = { |
188 tokens[levelname] = { |
189 'root': [ |
189 'root': [ |
190 # method names |
190 # method names |
191 (r'^([ \t]*(?:' + cs_ident + r'(?:\[\])?\s+)+?)' # return type |
191 (r'^([ \t]*(?:' + cs_ident + r'(?:\[\])?\s+)+?)' # return type |
192 r'(' + cs_ident + ')' # method name |
192 r'(' + cs_ident + ')' # method name |
539 |
539 |
540 |
540 |
541 # Very close to functional.OcamlLexer |
541 # Very close to functional.OcamlLexer |
542 class FSharpLexer(RegexLexer): |
542 class FSharpLexer(RegexLexer): |
543 """ |
543 """ |
544 For the F# language (version 3.0). |
544 For the `F# language <https://fsharp.org/>`_ (version 3.0). |
545 |
|
546 AAAAACK Strings |
|
547 http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html#_Toc335818775 |
|
548 |
545 |
549 .. versionadded:: 1.5 |
546 .. versionadded:: 1.5 |
550 """ |
547 """ |
551 |
548 |
552 name = 'FSharp' |
549 name = 'F#' |
553 aliases = ['fsharp'] |
550 aliases = ['fsharp', 'f#'] |
554 filenames = ['*.fs', '*.fsi'] |
551 filenames = ['*.fs', '*.fsi'] |
555 mimetypes = ['text/x-fsharp'] |
552 mimetypes = ['text/x-fsharp'] |
556 |
553 |
557 keywords = [ |
554 keywords = [ |
558 'abstract', 'as', 'assert', 'base', 'begin', 'class', 'default', |
555 'abstract', 'as', 'assert', 'base', 'begin', 'class', 'default', |