From: Theodor Thornhill via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Stefan Kangas <stefankangas@gmail.com>, 59602@debbugs.gnu.org
Cc: "Jostein Kjønigsen" <jostein@kjonigsen.net>
Subject: bug#59602: 29.0.50; csharp-mode should either be a package, or compat code could be removed
Date: Sat, 26 Nov 2022 20:12:58 +0100 [thread overview]
Message-ID: <87o7st4jid.fsf@thornhill.no> (raw)
In-Reply-To: <CADwFkmnbedAd-Lps8pkDE9uyOtU1JDNBWoq2BsPwLbHTmKTnMQ@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 613 bytes --]
Stefan Kangas <stefankangas@gmail.com> writes:
> Severity: wishlist
>
> Is csharp-mode.el intended to be a :core package or should people just
> use the version that comes with Emacs?
>
> If the former, I guess some Version and Package-Requires headers
> are needed.
>
> If the latter, the compat code starting on line 512 could probably be
> removed.
I agree. The compat code should be removed. I don't thing we have much
to gain by maintaining this as a :core package, so here's a patch doing
what you suggest. I don't think that code should be part of Emacs at
all, if not absolutely necessary :-)
Theo
[-- Attachment #2: 0001-Remove-compatibility-code-in-csharp-mode.patch --]
[-- Type: text/x-diff, Size: 4466 bytes --]
From 44189f78889e22f3e9321d8b089ed452bfa3c87a Mon Sep 17 00:00:00 2001
From: Theodor Thornhill <theo@thornhill.no>
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 "\\<catch\\> *( *"
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
next prev parent reply other threads:[~2022-11-26 19:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-26 8:14 bug#59602: 29.0.50; csharp-mode should either be a package, or compat code could be removed Stefan Kangas
2022-11-26 19:12 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2022-11-26 20:58 ` Jostein Kjønigsen
2022-11-27 6:04 ` Eli Zaretskii
2022-11-27 9:38 ` Stefan Kangas
2022-11-27 9:58 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87o7st4jid.fsf@thornhill.no \
--to=bug-gnu-emacs@gnu.org \
--cc=59602@debbugs.gnu.org \
--cc=jostein@kjonigsen.net \
--cc=stefankangas@gmail.com \
--cc=theo@thornhill.no \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.