From 44189f78889e22f3e9321d8b089ed452bfa3c87a Mon Sep 17 00:00:00 2001 From: Theodor Thornhill Date: Sat, 26 Nov 2022 20:10:58 +0100 Subject: [PATCH] Remove compatibility code in csharp-mode * lisp/progmodes/csharp-mode.el (c-basic-matchers-before): Remove invalid string check for Emacs 27. (version=): Remove compatibility hack for string handling in CC Mode in Emacs 27.1. --- lisp/progmodes/csharp-mode.el | 75 +---------------------------------- 1 file changed, 2 insertions(+), 73 deletions(-) diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el index a544a4b5cb..354aacf9bc 100644 --- a/lisp/progmodes/csharp-mode.el +++ b/lisp/progmodes/csharp-mode.el @@ -319,12 +319,7 @@ csharp--color-forwards (c-lang-defconst c-basic-matchers-before csharp `( ;; Warning face on unclosed strings - ,@(if (version< emacs-version "27.0") - ;; Taken from 26.1 branch - `(,(c-make-font-lock-search-function - (concat ".\\(" c-string-limit-regexp "\\)") - '((c-font-lock-invalid-string)))) - `(("\\s|" 0 font-lock-warning-face t nil))) + ("\\s|" 0 font-lock-warning-face t nil) ;; Invalid single quotes c-font-lock-invalid-single-quotes @@ -346,7 +341,6 @@ c-basic-matchers-before nil (goto-char (match-end 0))))) - ;; Negation character (eval . (list "\\(!\\)[^=]" 1 c-negation-char-face-name)) @@ -375,8 +369,7 @@ c-basic-matchers-before (eval . (list (concat "\\ *( *" csharp--regex-type-name-matcher " *) *") - 1 font-lock-type-face)) - )) + 1 font-lock-type-face)))) (c-lang-defconst c-basic-matchers-after csharp (append @@ -505,70 +498,6 @@ csharp-guess-basic-syntax ;;; End of new syntax constructs - - -;;; Fix for strings on version 27.1 - -(when (version= emacs-version "27.1") - ;; See: - ;; https://github.com/emacs-csharp/csharp-mode/issues/175 - ;; https://github.com/emacs-csharp/csharp-mode/issues/151 - ;; for the full story. - (defun c-pps-to-string-delim (end) - (let* ((start (point)) - (no-st-s `(0 nil nil ?\" nil nil 0 nil ,start nil nil)) - (st-s `(0 nil nil t nil nil 0 nil ,start nil nil)) - no-st-pos st-pos - ) - (parse-partial-sexp start end nil nil no-st-s 'syntax-table) - (setq no-st-pos (point)) - (goto-char start) - (while (progn - (parse-partial-sexp (point) end nil nil st-s 'syntax-table) - (unless (bobp) - (c-clear-syn-tab (1- (point)))) - (setq st-pos (point)) - (and (< (point) end) - (not (eq (char-before) ?\"))))) - (goto-char (min no-st-pos st-pos)) - nil)) - - (defun c-multiline-string-check-final-quote () - (let (pos-ll pos-lt) - (save-excursion - (goto-char (point-max)) - (skip-chars-backward "^\"") - (while - (and - (not (bobp)) - (cond - ((progn - (setq pos-ll (c-literal-limits) - pos-lt (c-literal-type pos-ll)) - (memq pos-lt '(c c++))) - ;; In a comment. - (goto-char (car pos-ll))) - ((save-excursion - (backward-char) ; over " - (c-is-escaped (point))) - ;; At an escaped string. - (backward-char) - t) - (t - ;; At a significant " - (c-clear-syn-tab (1- (point))) - (setq pos-ll (c-literal-limits) - pos-lt (c-literal-type pos-ll)) - nil))) - (skip-chars-backward "^\"")) - (cond - ((bobp)) - ((eq pos-lt 'string) - (c-put-syn-tab (1- (point)) '(15))) - (t nil)))))) - -;;; End of fix for strings on version 27.1 - ;; When invoked by MSBuild, csc’s errors look like this: ;; subfolder\file.cs(6,18): error CS1006: Name of constructor must ;; match name of class [c:\Users\user\project.csproj] -- 2.34.1