[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/csharp-mode 77a7243 341/459: Finally adapt CC Mode name
From: |
ELPA Syncer |
Subject: |
[elpa] externals/csharp-mode 77a7243 341/459: Finally adapt CC Mode namespace matcher function |
Date: |
Sun, 22 Aug 2021 13:59:57 -0400 (EDT) |
branch: externals/csharp-mode
commit 77a7243616f8ebfe56b89e15259a6079b0d5eefb
Author: Theodor Thornhill <theodor.thornhill@frende.no>
Commit: Theodor Thornhill <theodor.thornhill@frende.no>
Finally adapt CC Mode namespace matcher function
---
csharp-mode.el | 114 ++++++++++++++++++++++++++-------------------------------
1 file changed, 52 insertions(+), 62 deletions(-)
diff --git a/csharp-mode.el b/csharp-mode.el
index 692db57..1a394e4 100644
--- a/csharp-mode.el
+++ b/csharp-mode.el
@@ -47,7 +47,14 @@
(defconst csharp--regex-type-name-matcher
(concat "\\(" csharp--regex-type-name "\\)")
- "Regex matching a type identifier in C#."))
+ "Regex matching a type identifier in C#.")
+
+ (defconst csharp--regex-using-or-namespace
+ (concat "using" "\\|" "namespace"
+ "\\s *"
+ csharp--regex-type-name-matcher)
+ "Regex matching identifiers after a using or namespace
+ declaration."))
(eval-and-compile
(c-add-language 'csharp-mode 'java-mode))
@@ -91,6 +98,15 @@
csharp '("bool" "byte" "sbyte" "char" "decimal" "double" "float" "int" "uint"
"long" "ulong" "short" "ushort" "void" "object" "string" "var"))
+(c-lang-defconst c-other-decl-kwds
+ csharp nil)
+
+(c-lang-defconst c-type-list-kwds
+ csharp nil)
+
+(c-lang-defconst c-other-block-decl-kwds
+ csharp nil)
+
(c-lang-defconst c-return-kwds
csharp '("return"))
@@ -115,9 +131,6 @@
(c-lang-defconst c-ref-list-kwds
csharp nil)
-(c-lang-defconst c-other-block-decl-kwds
- csharp '("namespace"))
-
(c-lang-defconst c-using-kwds
csharp '("using"))
@@ -147,16 +160,10 @@
"fixed" "override" "params" "async" "await" "extern" "unsafe"
"get" "set" "this" "const" "delegate"))
-(c-lang-defconst c-other-decl-kwds
- csharp '("using"))
-
-(c-lang-defconst c-type-list-kwds
- csharp '("using"))
-
(c-lang-defconst c-other-kwds
csharp '("select" "from" "where" "join" "in" "on" "equals" "into"
"orderby" "ascending" "descending" "group" "nameof" "when"
- "let" "by"))
+ "let" "by" "namespace"))
(c-lang-defconst c-colon-type-list-kwds
csharp '("class" "struct" "interface"))
@@ -239,27 +246,26 @@
(cons '(csharp-mode . "csharp")
c-default-style))))
-(defun csharp--color-backwards (font-lock-face)
- (let (id-end)
- (goto-char (1+ (match-beginning 0)))
- (while (and (or (eq (char-before) ?.)
- (eq (char-before) ?\;))
+(defun csharp--color-forwards (font-lock-face)
+ (let (id-beginning)
+ (goto-char (match-beginning 0))
+ (forward-word)
+ (while (and (not (or (eq (char-after) ?\;)
+ (eq (char-after) ?\{)))
(progn
- (backward-char)
- (if (eq (char-before) ?\?)
- (backward-char))
- (c-backward-syntactic-ws)
- (setq id-end (point))
- (< (skip-chars-backward
+ (forward-char)
+ (c-forward-syntactic-ws)
+ (setq id-beginning (point))
+ (> (skip-chars-forward
(c-lang-const c-symbol-chars))
0))
(not (get-text-property (point) 'face)))
- (c-put-font-lock-face (point) id-end font-lock-face)
- (c-backward-syntactic-ws))))
+ (c-put-font-lock-face id-beginning (point) font-lock-face)
+ (c-forward-syntactic-ws))))
(c-lang-defconst c-basic-matchers-before
csharp `(
- ;; Put warning face on unclosed strings
+ ;; Warning face on unclosed strings
,@(if (version< emacs-version "27.0")
;; Taken from 26.1 branch
`(,(c-make-font-lock-search-function
@@ -270,60 +276,44 @@
;; Invalid single quotes
c-font-lock-invalid-single-quotes
- ;; Fontify keyword constants
+ ;; Keyword constants
,@(when (c-lang-const c-constant-kwds)
(let ((re (c-make-keywords-re nil (c-lang-const
c-constant-kwds))))
`((eval . (list ,(concat "\\<\\(" re "\\)\\>")
1 c-constant-face-name)))))
- ;; Fontify all keywords except the primitive types.
+ ;; Keywords except the primitive types.
,`(,(concat "\\<" (c-lang-const c-regular-keywords-regexp))
1 font-lock-keyword-face)
- ;; chained statements
+ ;; Chained identifiers in using/namespace statements
,`(,(c-make-font-lock-search-function
- (concat
- (c-lang-const c-opt-identifier-concat-key)
- (c-lang-const c-simple-ws) "*"
- (concat "\\("
- "[" (c-lang-const c-symbol-chars) "]*"
- "\\)"))
- `((csharp--color-backwards font-lock-variable-name-face)
+ csharp--regex-using-or-namespace
+ `((csharp--color-forwards font-lock-variable-name-face)
nil
(goto-char (match-end 0)))))
+
+ ;; Negation character
(eval . (list "\\(!\\)[^=]" 1 c-negation-char-face-name))
+
+ ;; Types after 'new'
+ (eval . (list (concat "\\<new\\> *" csharp--regex-type-name-matcher)
+ 1 font-lock-type-face))
+
+ ;; Single identifier in attribute
+ (eval . (list (concat "\\[" csharp--regex-type-name-matcher
"\\][^;]")
+ 1 font-lock-variable-name-face t))
+
+ ;; Function names
+ (eval . (list "\\([A-Za-z0-9_]+\\)\\(<[a-zA-Z0-9, ]+>\\)?("
+ 1 font-lock-function-name-face))
))
(c-lang-defconst c-basic-matchers-after
csharp (append
- ;; merge with cc-mode defaults
- (c-lang-const c-basic-matchers-after)
-
- ;; Hack: Last prop-identifier
- `((,(concat "\\." csharp--regex-type-name-matcher)
- 1 font-lock-variable-name-face t))
- `((,(concat "^using\\s *" csharp--regex-type-name-matcher ";")
- 1 font-lock-variable-name-face t))
- `((,(concat "^namespace\\s *" csharp--regex-type-name-matcher" \\s
*")
- 1 font-lock-variable-name-face t))
-
- ;; function names
- `(("\\([A-Za-z0-9_]+\\)\\(<[a-zA-Z0-9, ]+>\\)?("
- 1 font-lock-function-name-face t))
-
- ;; class names with inheritance
- `((,(concat "\\<" csharp--regex-type-name-matcher "\\s *:")
- 1 font-lock-type-face t))
-
- ;; Single identifier in attribute
- `((,(concat "\\[" csharp--regex-type-name-matcher "\\][^;]")
- 1 font-lock-variable-name-face t))
-
- ;; Types after 'new'
- `((,(concat "\\<new\\> *" csharp--regex-type-name-matcher)
- 1 font-lock-type-face t))
- ))
+ ;; Merge with cc-mode defaults - enables us to add more later
+ (c-lang-const c-basic-matchers-after)))
(defcustom csharp-font-lock-extra-types
(list csharp--regex-type-name)
- [elpa] externals/csharp-mode ecc3f38 317/459: Add annotation-top-cont as a new syntax construct, (continued)
- [elpa] externals/csharp-mode ecc3f38 317/459: Add annotation-top-cont as a new syntax construct, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 51ab628 319/459: Update README.org, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode be5af57 322/459: Fix optional type suffix regex, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 217d3a7 324/459: Revert "Add nullable operator to concatenated identifiers", ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 97903a2 327/459: Merge pull request #179 from josteink/feature/compilation-mode-dotnetcore, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode c44989a 331/459: Merge pull request #183 from josteink/vscode-fontification, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 2697c95 332/459: Move bobp checking in one level, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode adc69a4 335/459: Merge pull request #187 from josteink/bugfix/185, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode fb1f7d5 338/459: Don't duplicate values and remove unneeded test, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode fc6f94f 339/459: Handle "nameof" entirely in c-basic-matchers-after., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 77a7243 341/459: Finally adapt CC Mode namespace matcher function,
ELPA Syncer <=
- [elpa] externals/csharp-mode eff5dec 345/459: Try improve compilation-mode support for dotnet test fails., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 605b0e0 346/459: Add configuration option to font-locking of codedoc tags, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 49ca95e 350/459: RIP Marmalade, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 73c27c7 353/459: Update build.yml, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 6e7922d 354/459: Update build.yml, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode a99e43c 356/459: Update build.yml, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 9f36ad6 361/459: RIP Travis, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 48b11cf 366/459: Fix issues with non-nested using-statements., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 064a3a3 368/459: Fix detection of xUnit test-failures in compilation-mode, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 4aedd56 372/459: More basic highlighting, ELPA Syncer, 2021/08/22