all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#59909: 29.0.60; csharp-ts-mode does not fontify escape sequences nor highlight syntax errors
@ 2022-12-08 19:40 Jostein Kjønigsen
  2022-12-09 20:39 ` Yuan Fu
  0 siblings, 1 reply; 2+ messages in thread
From: Jostein Kjønigsen @ 2022-12-08 19:40 UTC (permalink / raw)
  To: 59909, casouri, theo


[-- Attachment #1.1: Type: text/plain, Size: 11522 bytes --]


Consider the following C# code:

public class Test
{
     public const string Foo = "test \t escape";
     fdsfd
}

When activating csharp-ts-mode, the escape sequence on line 3 is not 
fontified, and the syntax error on line 4 is not highlighted.

json-ts-mode does this, which is cool and I think csharp-ts-mode should 
have it too.

Attached is a patch which makes csharp-ts-mode support these 
fontification rules.

--
Jostein


In GNU Emacs 29.0.60 (build 1, x86_64-pc-linux-gnu, GTK+ Version
  3.24.34, cairo version 1.16.0) of 2022-12-08 built on ThinkPad-T14s
Repository revision: de5f5021bea73b759e76816f5a6dfb41d6050ffa
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12201003
System Description: Ubuntu 22.10

Configured using:
  'configure --with-json --with-tree-sitter'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

Important settings:
   value of $LC_MONETARY: nb_NO.UTF-8
   value of $LC_NUMERIC: nb_NO.UTF-8
   value of $LC_TIME: nb_NO.UTF-8
   value of $LANG: en_US.UTF-8
   locale-coding-system: utf-8-unix

Major mode: C#

Minor modes in effect:
   global-git-commit-mode: t
   magit-auto-revert-mode: t
   lsp-diagnostics-mode: t
   lsp-headerline-breadcrumb-mode: t
   lsp-modeline-workspace-status-mode: t
   lsp-modeline-diagnostics-mode: t
   lsp-modeline-code-actions-mode: t
   electric-pair-mode: t
   lsp-completion-mode: t
   editorconfig-mode: t
   flycheck-mode: t
   which-function-mode: t
   nlinum-mode: t
   company-mode: t
   global-ede-mode: t
   dap-tooltip-mode: t
   dap-ui-many-windows-mode: t
   dap-ui-controls-mode: t
   dap-ui-mode: t
   treemacs-filewatch-mode: t
   treemacs-follow-mode: t
   treemacs-git-mode: t
   treemacs-fringe-indicator-mode: t
   lsp-lens-mode: t
   dap-auto-configure-mode: t
   dap-mode: t
   global-undo-tree-mode: t
   undo-tree-mode: t
   doom-modeline-mode: t
   projectile-mode: t
   ido-yes-or-no-mode: t
   helm-mode: t
   helm-minibuffer-history-mode: t
   helm--remap-mouse-mode: t
   async-bytecomp-package-mode: t
   delete-selection-mode: t
   global-auto-revert-mode: t
   server-mode: t
   shell-dirtrack-mode: t
   global-hl-line-mode: t
   lsp-managed-mode: t
   lsp-mode: t
   yas-global-mode: t
   yas-minor-mode: t
   tooltip-mode: t
   global-eldoc-mode: t
   eldoc-mode: t
   show-paren-mode: t
   electric-indent-mode: t
   mouse-wheel-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   blink-cursor-mode: t
   column-number-mode: t
   line-number-mode: t
   transient-mark-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   hs-minor-mode: t

Load-path shadows:
/home/jostein/.emacs.d/elpa/transient-20221127.2242/transient hides 
/home/jostein/build/emacs/lisp/transient
/home/jostein/.emacs.d/elpa/eglot-20221020.1010/eglot hides 
/home/jostein/build/emacs/lisp/progmodes/eglot

Features:
(shadow sort mail-extr emacsbug magit-submodule magit-obsolete
magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull
magit-fetch magit-clone magit-remote magit-commit magit-sequence
magit-notes magit-worktree magit-tag magit-merge magit-branch
magit-reset magit-files magit-refs magit-status magit magit-repos
magit-apply magit-wip magit-log magit-diff smerge-mode git-commit
log-edit message sendmail yank-media rfc822 mml mml-sec epa mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mailabbrev gmm-utils mailheader pcvs-util magit-core magit-autorevert
magit-margin magit-transient magit-process with-editor magit-mode
transient magit-git magit-base magit-section crm compat-27 compat-26
derived help-fns radix-tree cl-print misearch multi-isearch face-remap
semantic/lex-spp ede/emacs semantic/db semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local bug-reference
executable flyspell ispell mule-util disp-table lsp-diagnostics
lsp-headerline lsp-icons lsp-modeline helm-command helm-elisp helm-eval
edebug debug backtrace helm-info view vc-git diff-mode vc-dispatcher
elec-pair csharp-mode treesit cc-langs cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs winner
ffap tramp-archive tramp-gvfs tramp-cache warnings time-stamp zeroconf
dbus add-log lsp-zig lsp-steep lsp-svelte lsp-sqls lsp-ruby-syntax-tree
lsp-yaml lsp-xml lsp-vimscript lsp-vhdl lsp-volar lsp-vetur lsp-html
lsp-verilog lsp-vala lsp-v lsp-typeprof lsp-ttcn3 lsp-toml lsp-terraform
lsp-tex lsp-sorbet lsp-solargraph lsp-rust lsp-rf lsp-remark lsp-racket
lsp-r lsp-purescript lsp-pylsp lsp-pyls lsp-php lsp-pls
lsp-perlnavigator lsp-perl lsp-openscad lsp-ocaml lsp-magik lsp-nix
lsp-nim lsp-nginx lsp-mint lsp-marksman lsp-markdown lsp-lua lsp-kotlin
lsp-json lsp-javascript lsp-idris lsp-haxe lsp-groovy lsp-hack
lsp-graphql lsp-gleam lsp-go lsp-completion lsp-gdscript lsp-fsharp
lsp-fortran lsp-eslint lsp-erlang lsp-emmet lsp-elixir lsp-elm
lsp-dockerfile lsp-dhall lsp-d lsp-css lsp-csharp gnutls lsp-crystal
lsp-cmake lsp-clojure lsp-semantic-tokens lsp-clangd lsp-beancount
lsp-bash lsp-astro lsp-ansible lsp-angular lsp-ada lsp-actionscript
ido-completing-read+ memoize minibuf-eldef elisp-slime-nav paredit
editorconfig editorconfig-core editorconfig-core-handle
editorconfig-fnmatch flycheck highlight-symbol which-func nlinum linum
company-oddmuse company-keywords company-etags etags fileloop generator
company-gtags company-dabbrev-code company-dabbrev company-files
company-clang company-capf company-cmake company-semantic
company-template company-bbdb company-web-html company-web company-css
web-completion-data company hideshow eww url-queue shr pixel-fill
kinsoku url-file svg mm-url gnus nnheader gnus-util mail-utils range
mm-util mail-prsvr ede/speedbar ede/files ede ede/detect ede/base
ede/auto ede/source eieio-base eieio-speedbar speedbar ezimage dframe
eieio-custom cedet dap-mouse dap-ui lsp-treemacs lsp-treemacs-generic
lsp-treemacs-themes treemacs-treelib treemacs treemacs-header-line
treemacs-compatibility treemacs-mode treemacs-interface
treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode
treemacs-rendering treemacs-annotations treemacs-async
treemacs-workspaces treemacs-dom treemacs-visuals
treemacs-fringe-indicator treemacs-scope pulse treemacs-faces
treemacs-icons treemacs-themes treemacs-core-utils pfuture
treemacs-logging treemacs-customization treemacs-macros gdb-mi bindat
gud bui bui-list bui-info bui-entry bui-core bui-history bui-button
bui-utils lsp-lens dap-gdb-lldb dap-netcore dap-node dap-utils dom xml
dap-pwsh lsp-pwsh dap-python dap-mode dap-tasks dap-launch lsp-docker
yaml posframe dap-overlays undo-tree diff queue doom-modeline
doom-modeline-segments doom-modeline-env doom-modeline-core
all-the-icons all-the-icons-faces data-material data-weathericons
data-octicons data-fileicons data-faicons data-alltheicons shrink-path
compat compat-macs projectile lisp-mnt grep ibuf-ext ibuffer
ibuffer-loaddefs helm-imenu ob-plantuml org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list
org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval
org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs
find-func cal-menu calendar cal-loaddefs org-version org-compat org-macs
ido-yes-or-no ido helm-mode helm-misc helm-files image-dired
image-dired-tags image-dired-external image-dired-util xdg image-mode
dired dired-loaddefs exif tramp tramp-loaddefs trampver
tramp-integration cus-edit pp cus-load files-x tramp-compat parse-time
iso8601 time-date ls-lisp helm-buffers helm-occur helm-tags helm-locate
helm-grep helm-regexp format-spec helm-utils helm-help helm-types helm
helm-global-bindings helm-easymenu edmacro kmacro helm-core easy-mmode
async-bytecomp helm-source helm-multi-match helm-lib async helm-config
delsel cl-extra autorevert server powershell advice shell pcomplete
hl-line lsp-mode lsp-protocol yasnippet help-mode xref project
tree-widget wid-edit spinner pcase network-stream puny nsm markdown-mode
color thingatpt noutline outline icons lv inline imenu ht filenotify f
f-shortdoc shortdoc s ewoc epg rfc6068 epg-config dash dracula-theme
compile-eslint rx compile text-property-search comint ansi-osc
ansi-color ring cl finder-inf git-timemachine-autoloads
helm-projectile-autoloads expand-region-autoloads
all-the-icons-autoloads dracula-theme-autoloads eglot-autoloads
multiple-cursors-autoloads tree-sitter-langs-autoloads
projectile-autoloads nlinum-autoloads doom-modeline-autoloads
rust-mode-autoloads editorconfig-autoloads helm-autoloads
helm-core-autoloads async-autoloads assess-autoloads m-buffer-autoloads
cargo-autoloads package-lint-autoloads flycheck-autoloads
company-autoloads magit-autoloads magit-section-autoloads
web-mode-autoloads paredit-autoloads helpful-autoloads
elisp-refs-autoloads js2-mode-autoloads yaml-mode-autoloads
powershell-autoloads dap-mode-autoloads lsp-docker-autoloads
yaml-autoloads lsp-treemacs-autoloads treemacs-autoloads
posframe-autoloads hydra-autoloads pfuture-autoloads
ace-window-autoloads avy-autoloads lsp-mode-autoloads
markdown-mode-autoloads ht-autoloads git-commit-autoloads
with-editor-autoloads transient-autoloads compat-autoloads
pcache-autoloads f-autoloads popup-autoloads s-autoloads info
dash-autoloads macrostep-autoloads package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process emacs)

Memory information:
((conses 16 653528 50986)
  (symbols 48 56100 0)
  (strings 32 207770 6006)
  (string-bytes 1 6562765)
  (vectors 16 119588)
  (vector-slots 8 2228903 93130)
  (floats 8 1003 1039)
  (intervals 56 6843 3017)
  (buffers 992 34))

-- 
Vennlig hilsen
*Jostein Kjønigsen*

jostein@kjonigsen.net 🍵 jostein@gmail.com
https://jostein.kjønigsen.no <https://jostein.kjønigsen.no>

[-- Attachment #1.2: Type: text/html, Size: 15572 bytes --]

[-- Attachment #2: 0002-lisp-progmodes-csharp-mode.el-Improve-fontification-.patch --]
[-- Type: text/x-patch, Size: 1456 bytes --]

From 37f3038d791c1e52b92fbbaf8221092ae8a2f284 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <jostein@kjonigsen.net>
Date: Thu, 8 Dec 2022 20:36:49 +0100
Subject: [PATCH 2/2] lisp/progmodes/csharp-mode.el: Improve fontification in
 csharp-ts-mode

- fontity escape sequences
- highlight syntax errors
---
 lisp/progmodes/csharp-mode.el | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el
index 82e3bc0d541..8c76284e108 100644
--- a/lisp/progmodes/csharp-mode.el
+++ b/lisp/progmodes/csharp-mode.el
@@ -818,7 +818,13 @@ csharp-ts-mode--font-lock-settings
 
    :language 'c-sharp
    :feature 'delimiter
-   '((["," ":" ";"]) @font-lock-delimiter-face)))
+   '((["," ":" ";"]) @font-lock-delimiter-face)
+
+   :language 'c-sharp
+   :feature 'escape-sequence
+   :override t
+   '((escape_sequence) @font-lock-escape-face
+     (ERROR) @font-lock-warning-face)))
 
 ;;;###autoload
 (add-to-list 'auto-mode-alist '("\\.cs\\'" . csharp-mode))
@@ -926,7 +932,7 @@ csharp-ts-mode
   (setq-local treesit-font-lock-settings csharp-ts-mode--font-lock-settings)
   (setq-local treesit-font-lock-feature-list
               '(( comment definition)
-                ( keyword string type)
+                ( keyword string escape-sequence type)
                 ( attribute constant expression literal)
                 ( bracket delimiter)))
 
-- 
2.37.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* bug#59909: 29.0.60; csharp-ts-mode does not fontify escape sequences nor highlight syntax errors
  2022-12-08 19:40 bug#59909: 29.0.60; csharp-ts-mode does not fontify escape sequences nor highlight syntax errors Jostein Kjønigsen
@ 2022-12-09 20:39 ` Yuan Fu
  0 siblings, 0 replies; 2+ messages in thread
From: Yuan Fu @ 2022-12-09 20:39 UTC (permalink / raw)
  To: Jostein Kjønigsen; +Cc: jostein, Theodor Thornhill, 59909


Jostein Kjønigsen <jostein@secure.kjonigsen.net> writes:

> Consider the following C# code:
>
> public class Test
> {
>     public const string Foo = "test \t escape";
>     fdsfd
> }
>
> When activating csharp-ts-mode, the escape sequence on line 3 is not fontified, and the syntax error on line 4 is not
> highlighted.
>
> json-ts-mode does this, which is cool and I think csharp-ts-mode should have it too.
>
> Attached is a patch which makes csharp-ts-mode support these fontification rules.

Applied, thanks! Also, it would be nice if you can write the commit
messages in the style described in the CONTRIBUTE file under project
root. You can have a look at the commit messages of your commits that I
applied for some example.

Yuan





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-12-09 20:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-08 19:40 bug#59909: 29.0.60; csharp-ts-mode does not fontify escape sequences nor highlight syntax errors Jostein Kjønigsen
2022-12-09 20:39 ` Yuan Fu

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.