* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
@ 2022-12-05 8:42 Jostein Kjønigsen
2022-12-05 8:51 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 14+ messages in thread
From: Jostein Kjønigsen @ 2022-12-05 8:42 UTC (permalink / raw)
To: 59831, casouri, theo
[-- Attachment #1: Type: text/plain, Size: 11368 bytes --]
When I create or use a class in a Typescript-file, I often have
properties and field declarations.
These are all fontified using default-face, instead of
font-lock-property-face.
Also when creating new objects using bracket syntac { key: value, key:
value, etc: etc }, default-face is used.
Attached is a patch which improves fontification of these aspects in
both typescript-ts-mode and typescript-tsx-mode.
It also contains code to further improve fontification of
retuen-statements, which IMO is a little bit lacking.
--
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-02 built on ThinkPad-T14s
Repository revision: 1e36ad9458e8deacfc85da573bb0ca0f270d4802
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12201003
System Description: Ubuntu 22.10
Configured using:
'configure --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: ELisp/l
Minor modes in effect:
global-git-commit-mode: t
magit-auto-revert-mode: t
bug-reference-prog-mode: t
elisp-slime-nav-mode: t
paredit-mode: t
editorconfig-mode: t
flycheck-mode: t
highlight-symbol-mode: t
which-function-mode: t
nlinum-mode: t
company-mode: t
global-ede-mode: t
ede-minor-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
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
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
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 emacsbug magit-extras magit-bookmark 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
derived 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 helm-bookmark helm-net helm-adaptive treemacs-bookmarks
treemacs-tags bookmark mail-extr misearch multi-isearch flyspell ispell
mule-util cl-print executable semantic/lex-spp ede/emacs semantic/db
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local bug-reference helm-command helm-elisp helm-eval
helm-info face-remap lsp-diagnostics lsp-headerline lsp-icons
lsp-modeline view vc-git diff-mode vc-dispatcher disp-table elec-pair
typescript-ts-mode js cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs treesit 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 edebug debug
backtrace 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 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 compile text-property-search comint ansi-osc ansi-color
ring cl finder-inf git-timemachine-autoloads rx
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 2991132 164706)
(symbols 48 56330 18)
(strings 32 217806 17887)
(string-bytes 1 8280995)
(vectors 16 143455)
(vector-slots 8 2426206 213888)
(floats 8 1056 1320)
(intervals 56 367249 2248)
(buffers 992 53))
[-- Attachment #2: 0001-lisp-progmodes-typescript-ts-mode-improve-fontificat.patch --]
[-- Type: text/x-patch, Size: 1795 bytes --]
From 3bcbd89cc43c6ad7885f11aa4c7c92ebd600a164 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <jostein@kjonigsen.net>
Date: Mon, 5 Dec 2022 09:31:58 +0100
Subject: [PATCH] lisp/progmodes/typescript-ts-mode: improve fontification
- syntax-highlight property and field definitions in class declaration.
- syntax-highlight property-keys in object initializaters.
- syntax-highlight variable-names in function/method return-statements.
---
lisp/progmodes/typescript-ts-mode.el | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
index 48ac1169fe8..48d3c084b6e 100644
--- a/lisp/progmodes/typescript-ts-mode.el
+++ b/lisp/progmodes/typescript-ts-mode.el
@@ -213,7 +213,9 @@ typescript-ts-mode--font-lock-settings
parameters:
[(_ (identifier) @font-lock-variable-name-face)
(_ (_ (identifier) @font-lock-variable-name-face))
- (_ (_ (_ (identifier) @font-lock-variable-name-face)))]))
+ (_ (_ (_ (identifier) @font-lock-variable-name-face)))])
+
+ (return_statement (identifier) @font-lock-variable-name-face))
:language language
:override t
@@ -282,7 +284,14 @@ typescript-ts-mode--font-lock-settings
:language language
:override t
:feature 'property
- `((pair value: (identifier) @font-lock-variable-name-face)
+ `((property_signature
+ name: (property_identifier) @font-lock-property-face)
+ (public_field_definition
+ name: (property_identifier) @font-lock-property-face)
+
+ (pair key: (property_identifier) @font-lock-variable-name-face)
+
+ (pair value: (identifier) @font-lock-variable-name-face)
((shorthand_property_identifier) @font-lock-property-face)
--
2.37.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-05 8:42 bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified Jostein Kjønigsen
@ 2022-12-05 8:51 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-05 9:05 ` Jostein Kjønigsen
0 siblings, 1 reply; 14+ messages in thread
From: Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-12-05 8:51 UTC (permalink / raw)
To: 59831; +Cc: jostein, casuri
Jostein Kjønigsen <jostein@secure.kjonigsen.net> writes:
> When I create or use a class in a Typescript-file, I often have
> properties and field declarations.
>
> These are all fontified using default-face, instead of
> font-lock-property-face.
>
> Also when creating new objects using bracket syntac { key: value, key:
> value, etc: etc }, default-face is used.
>
> Attached is a patch which improves fontification of these aspects in
> both typescript-ts-mode and typescript-tsx-mode.
>
> It also contains code to further improve fontification of
> retuen-statements, which IMO is a little bit lacking.
>
LGTM :) Yuan, feel free to apply when you have some free time!
> From 3bcbd89cc43c6ad7885f11aa4c7c92ebd600a164 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <jostein@kjonigsen.net>
> Date: Mon, 5 Dec 2022 09:31:58 +0100
> Subject: [PATCH] lisp/progmodes/typescript-ts-mode: improve fontification
>
> - syntax-highlight property and field definitions in class declaration.
> - syntax-highlight property-keys in object initializaters.
> - syntax-highlight variable-names in function/method return-statements.
> ---
> lisp/progmodes/typescript-ts-mode.el | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
> index 48ac1169fe8..48d3c084b6e 100644
> --- a/lisp/progmodes/typescript-ts-mode.el
> +++ b/lisp/progmodes/typescript-ts-mode.el
> @@ -213,7 +213,9 @@ typescript-ts-mode--font-lock-settings
> parameters:
> [(_ (identifier) @font-lock-variable-name-face)
> (_ (_ (identifier) @font-lock-variable-name-face))
> - (_ (_ (_ (identifier) @font-lock-variable-name-face)))]))
> + (_ (_ (_ (identifier) @font-lock-variable-name-face)))])
> +
> + (return_statement (identifier) @font-lock-variable-name-face))
>
> :language language
> :override t
> @@ -282,7 +284,14 @@ typescript-ts-mode--font-lock-settings
> :language language
> :override t
> :feature 'property
> - `((pair value: (identifier) @font-lock-variable-name-face)
> + `((property_signature
> + name: (property_identifier) @font-lock-property-face)
> + (public_field_definition
> + name: (property_identifier) @font-lock-property-face)
> +
> + (pair key: (property_identifier) @font-lock-variable-name-face)
> +
> + (pair value: (identifier) @font-lock-variable-name-face)
>
> ((shorthand_property_identifier) @font-lock-property-face)
>
Thanks!
Theo
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-05 8:51 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-12-05 9:05 ` Jostein Kjønigsen
2022-12-05 9:24 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 14+ messages in thread
From: Jostein Kjønigsen @ 2022-12-05 9:05 UTC (permalink / raw)
To: Theodor Thornhill, 59831; +Cc: jostein, casuri
[-- Attachment #1: Type: text/plain, Size: 2895 bytes --]
Attached is another patch with some further improvements.
These too OK with you, Theodor?
--
Jostein
jostein@kjonigsen.net 🍵 jostein@gmail.com
https://jostein.kjønigsen.no <https://jostein.kjønigsen.no>
On 05.12.2022 09:51, Theodor Thornhill wrote:
> Jostein Kjønigsen <jostein@secure.kjonigsen.net> writes:
>
>> When I create or use a class in a Typescript-file, I often have
>> properties and field declarations.
>>
>> These are all fontified using default-face, instead of
>> font-lock-property-face.
>>
>> Also when creating new objects using bracket syntac { key: value, key:
>> value, etc: etc }, default-face is used.
>>
>> Attached is a patch which improves fontification of these aspects in
>> both typescript-ts-mode and typescript-tsx-mode.
>>
>> It also contains code to further improve fontification of
>> retuen-statements, which IMO is a little bit lacking.
>>
> LGTM :) Yuan, feel free to apply when you have some free time!
>
>> From 3bcbd89cc43c6ad7885f11aa4c7c92ebd600a164 Mon Sep 17 00:00:00 2001
>> From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <jostein@kjonigsen.net>
>> Date: Mon, 5 Dec 2022 09:31:58 +0100
>> Subject: [PATCH] lisp/progmodes/typescript-ts-mode: improve fontification
>>
>> - syntax-highlight property and field definitions in class declaration.
>> - syntax-highlight property-keys in object initializaters.
>> - syntax-highlight variable-names in function/method return-statements.
>> ---
>> lisp/progmodes/typescript-ts-mode.el | 13 +++++++++++--
>> 1 file changed, 11 insertions(+), 2 deletions(-)
>>
>> diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
>> index 48ac1169fe8..48d3c084b6e 100644
>> --- a/lisp/progmodes/typescript-ts-mode.el
>> +++ b/lisp/progmodes/typescript-ts-mode.el
>> @@ -213,7 +213,9 @@ typescript-ts-mode--font-lock-settings
>> parameters:
>> [(_ (identifier) @font-lock-variable-name-face)
>> (_ (_ (identifier) @font-lock-variable-name-face))
>> - (_ (_ (_ (identifier) @font-lock-variable-name-face)))]))
>> + (_ (_ (_ (identifier) @font-lock-variable-name-face)))])
>> +
>> + (return_statement (identifier) @font-lock-variable-name-face))
>>
>> :language language
>> :override t
>> @@ -282,7 +284,14 @@ typescript-ts-mode--font-lock-settings
>> :language language
>> :override t
>> :feature 'property
>> - `((pair value: (identifier) @font-lock-variable-name-face)
>> + `((property_signature
>> + name: (property_identifier) @font-lock-property-face)
>> + (public_field_definition
>> + name: (property_identifier) @font-lock-property-face)
>> +
>> + (pair key: (property_identifier) @font-lock-variable-name-face)
>> +
>> + (pair value: (identifier) @font-lock-variable-name-face)
>>
>> ((shorthand_property_identifier) @font-lock-property-face)
>>
> Thanks!
>
> Theo
[-- Attachment #2: 0002-lisp-progmodes-typescript-ts-mode-Improve-fontificat.patch --]
[-- Type: text/x-patch, Size: 1186 bytes --]
From 441b2340f0a8d9bf27b0dbcb985051c84672f41f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <jostein@kjonigsen.net>
Date: Mon, 5 Dec 2022 10:00:15 +0100
Subject: [PATCH 2/2] lisp/progmodes/typescript-ts-mode: Improve fontifications
of variables in use.
---
lisp/progmodes/typescript-ts-mode.el | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
index 48d3c084b6e..3da690567e2 100644
--- a/lisp/progmodes/typescript-ts-mode.el
+++ b/lisp/progmodes/typescript-ts-mode.el
@@ -215,7 +215,12 @@ typescript-ts-mode--font-lock-settings
(_ (_ (identifier) @font-lock-variable-name-face))
(_ (_ (_ (identifier) @font-lock-variable-name-face)))])
- (return_statement (identifier) @font-lock-variable-name-face))
+ (return_statement (identifier) @font-lock-variable-name-face)
+
+ (binary_expression left: (identifier) @font-lock-variable-name-face)
+ (binary_expression right: (identifier) @font-lock-variable-name-face)
+
+ (arguments (identifier) @font-lock-variable-name-face))
:language language
:override t
--
2.37.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-05 9:05 ` Jostein Kjønigsen
@ 2022-12-05 9:24 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-05 20:13 ` Yuan Fu
0 siblings, 1 reply; 14+ messages in thread
From: Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-12-05 9:24 UTC (permalink / raw)
To: Jostein Kjønigsen, 59831; +Cc: jostein, casuri
Jostein Kjønigsen <jostein@secure.kjonigsen.net> writes:
> Attached is another patch with some further improvements.
>
> These too OK with you, Theodor?
>
Yep!
> From 441b2340f0a8d9bf27b0dbcb985051c84672f41f Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <jostein@kjonigsen.net>
> Date: Mon, 5 Dec 2022 10:00:15 +0100
> Subject: [PATCH 2/2] lisp/progmodes/typescript-ts-mode: Improve fontifications
> of variables in use.
>
> ---
> lisp/progmodes/typescript-ts-mode.el | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
> index 48d3c084b6e..3da690567e2 100644
> --- a/lisp/progmodes/typescript-ts-mode.el
> +++ b/lisp/progmodes/typescript-ts-mode.el
> @@ -215,7 +215,12 @@ typescript-ts-mode--font-lock-settings
> (_ (_ (identifier) @font-lock-variable-name-face))
> (_ (_ (_ (identifier) @font-lock-variable-name-face)))])
>
> - (return_statement (identifier) @font-lock-variable-name-face))
> + (return_statement (identifier) @font-lock-variable-name-face)
> +
> + (binary_expression left: (identifier) @font-lock-variable-name-face)
> + (binary_expression right: (identifier) @font-lock-variable-name-face)
> +
> + (arguments (identifier) @font-lock-variable-name-face))
>
> :language language
> :override t
> --
> 2.37.2
Theo
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-05 9:24 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-12-05 20:13 ` Yuan Fu
2022-12-07 9:24 ` Jostein Kjønigsen
0 siblings, 1 reply; 14+ messages in thread
From: Yuan Fu @ 2022-12-05 20:13 UTC (permalink / raw)
To: Theodor Thornhill
Cc: 59831-done, 59831, casuri, Jostein Kjønigsen, jostein
> On Dec 5, 2022, at 1:24 AM, Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors <bug-gnu-emacs@gnu.org> wrote:
>
> Jostein Kjønigsen <jostein@secure.kjonigsen.net> writes:
>
>> Attached is another patch with some further improvements.
>>
>> These too OK with you, Theodor?
>>
>
> Yep!
I squashed the two commits and applied them, Thanks!
Yuan
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-05 20:13 ` Yuan Fu
@ 2022-12-07 9:24 ` Jostein Kjønigsen
2022-12-07 9:33 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 14+ messages in thread
From: Jostein Kjønigsen @ 2022-12-07 9:24 UTC (permalink / raw)
To: Yuan Fu, Theodor Thornhill; +Cc: 59831
[-- Attachment #1.1: Type: text/plain, Size: 806 bytes --]
Hey everyone.
I'd like to add one more change to this particular bug, which makes
fontification of variables more consistent when used in other
expressions and statements.
Please see attached patch.
In short this patch changes the following:
* fontifies property-access in general expressions
* fontifies variables and property-access in if-expressions
--
Jostein
On 05.12.2022 21:13, Yuan Fu wrote:
>
>> On Dec 5, 2022, at 1:24 AM, Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors<bug-gnu-emacs@gnu.org> wrote:
>>
>> Jostein Kjønigsen<jostein@secure.kjonigsen.net> writes:
>>
>>> Attached is another patch with some further improvements.
>>>
>>> These too OK with you, Theodor?
>>>
>> Yep!
> I squashed the two commits and applied them, Thanks!
>
> Yuan
[-- Attachment #1.2: Type: text/html, Size: 1702 bytes --]
[-- Attachment #2: 0001-lisp-progmodes-typescript-ts-mode.el-Improve-fontifi.patch --]
[-- Type: text/x-patch, Size: 2602 bytes --]
From 0817a9a9ce00bf44e6368a3d74262f83e49ebbf3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <jostein@kjonigsen.net>
Date: Wed, 7 Dec 2022 09:27:42 +0100
Subject: [PATCH] lisp/progmodes/typescript-ts-mode.el: Improve fontification
of variables
---
lisp/progmodes/typescript-ts-mode.el | 43 +++++++++++++++++-----------
1 file changed, 27 insertions(+), 16 deletions(-)
diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
index 3da690567e2..33f332d66d6 100644
--- a/lisp/progmodes/typescript-ts-mode.el
+++ b/lisp/progmodes/typescript-ts-mode.el
@@ -220,7 +220,32 @@ typescript-ts-mode--font-lock-settings
(binary_expression left: (identifier) @font-lock-variable-name-face)
(binary_expression right: (identifier) @font-lock-variable-name-face)
- (arguments (identifier) @font-lock-variable-name-face))
+ (arguments (identifier) @font-lock-variable-name-face)
+
+ (parenthesized_expression (identifier) @font-lock-variable-name-face))
+
+ :language language
+ :override t
+ :feature 'property
+ `((property_signature
+ name: (property_identifier) @font-lock-property-face)
+ (public_field_definition
+ name: (property_identifier) @font-lock-property-face)
+ (member_expression
+ object: (identifier) @font-lock-variable-name-face
+ property: (_) @font-lock-property-face)
+ (member_expression
+ object: (this) @font-lock-keyword-face
+ property: (_) @font-lock-property-face)
+
+ (pair key: (property_identifier) @font-lock-variable-name-face)
+
+ (pair value: (identifier) @font-lock-variable-name-face)
+
+ ((shorthand_property_identifier) @font-lock-property-face)
+
+ ((shorthand_property_identifier_pattern)
+ @font-lock-property-face))
:language language
:override t
@@ -286,22 +311,8 @@ typescript-ts-mode--font-lock-settings
:override t
'((escape_sequence) @font-lock-escape-face)
- :language language
- :override t
- :feature 'property
- `((property_signature
- name: (property_identifier) @font-lock-property-face)
- (public_field_definition
- name: (property_identifier) @font-lock-property-face)
- (pair key: (property_identifier) @font-lock-variable-name-face)
-
- (pair value: (identifier) @font-lock-variable-name-face)
-
- ((shorthand_property_identifier) @font-lock-property-face)
-
- ((shorthand_property_identifier_pattern)
- @font-lock-property-face))))
+ ))
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-ts-mode))
--
2.37.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-07 9:24 ` Jostein Kjønigsen
@ 2022-12-07 9:33 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-07 9:42 ` Jostein Kjønigsen
0 siblings, 1 reply; 14+ messages in thread
From: Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-12-07 9:33 UTC (permalink / raw)
To: jostein, Yuan Fu; +Cc: 59831
Jostein Kjønigsen <jostein@secure.kjonigsen.net> writes:
> Hey everyone.
>
> I'd like to add one more change to this particular bug, which makes
> fontification of variables more consistent when used in other
> expressions and statements.
>
> Please see attached patch.
>
> In short this patch changes the following:
>
> * fontifies property-access in general expressions
> * fontifies variables and property-access in if-expressions
>
> --
> Jostein
>
> On 05.12.2022 21:13, Yuan Fu wrote:
>>
>>> On Dec 5, 2022, at 1:24 AM, Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors<bug-gnu-emacs@gnu.org> wrote:
>>>
>>> Jostein Kjønigsen<jostein@secure.kjonigsen.net> writes:
>>>
>>>> Attached is another patch with some further improvements.
>>>>
>>>> These too OK with you, Theodor?
>>>>
>>> Yep!
>> I squashed the two commits and applied them, Thanks!
>>
>> Yuan
> From 0817a9a9ce00bf44e6368a3d74262f83e49ebbf3 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <jostein@kjonigsen.net>
> Date: Wed, 7 Dec 2022 09:27:42 +0100
> Subject: [PATCH] lisp/progmodes/typescript-ts-mode.el: Improve fontification
> of variables
>
> ---
> lisp/progmodes/typescript-ts-mode.el | 43 +++++++++++++++++-----------
> 1 file changed, 27 insertions(+), 16 deletions(-)
>
> diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
> index 3da690567e2..33f332d66d6 100644
> --- a/lisp/progmodes/typescript-ts-mode.el
> +++ b/lisp/progmodes/typescript-ts-mode.el
> @@ -220,7 +220,32 @@ typescript-ts-mode--font-lock-settings
> (binary_expression left: (identifier) @font-lock-variable-name-face)
> (binary_expression right: (identifier) @font-lock-variable-name-face)
>
> - (arguments (identifier) @font-lock-variable-name-face))
> + (arguments (identifier) @font-lock-variable-name-face)
> +
> + (parenthesized_expression (identifier) @font-lock-variable-name-face))
> +
> + :language language
> + :override t
> + :feature 'property
> + `((property_signature
> + name: (property_identifier) @font-lock-property-face)
> + (public_field_definition
> + name: (property_identifier) @font-lock-property-face)
> + (member_expression
> + object: (identifier) @font-lock-variable-name-face
> + property: (_) @font-lock-property-face)
> + (member_expression
> + object: (this) @font-lock-keyword-face
Do we need this (this) here, or could that just go into the keyword feature?
Otherwise LGTM. Go ahead and install, Yuan, unless you have something
else to add :-)
Theo
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-07 9:33 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-12-07 9:42 ` Jostein Kjønigsen
2022-12-12 7:53 ` Jostein Kjønigsen
0 siblings, 1 reply; 14+ messages in thread
From: Jostein Kjønigsen @ 2022-12-07 9:42 UTC (permalink / raw)
To: Theodor Thornhill, jostein, Yuan Fu; +Cc: 59831
[-- Attachment #1: Type: text/plain, Size: 421 bytes --]
On 07.12.2022 10:33, Theodor Thornhill wrote:
>
> Do we need this (this) here, or could that just go into the keyword feature?
>
> Otherwise LGTM. Go ahead and install, Yuan, unless you have something
> else to add :-)
>
> Theo
You're right. We don't. I've cleaned that up in this patch, and also
made sure to better support if-statements with negations.
See new, attached patch with all changes applied.
--
Jostein
[-- Attachment #2: 0001-lisp-progmodes-typescript-ts-mode.el-Improve-fontifi.patch --]
[-- Type: text/x-patch, Size: 2590 bytes --]
From f2f79b2bde2147fd0febddea696ab43bcc257b96 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= <jostein@kjonigsen.net>
Date: Wed, 7 Dec 2022 09:27:42 +0100
Subject: [PATCH] lisp/progmodes/typescript-ts-mode.el: Improve fontification
of variables
---
lisp/progmodes/typescript-ts-mode.el | 42 +++++++++++++++++-----------
1 file changed, 26 insertions(+), 16 deletions(-)
diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
index 3da690567e2..fc2f746a0f4 100644
--- a/lisp/progmodes/typescript-ts-mode.el
+++ b/lisp/progmodes/typescript-ts-mode.el
@@ -220,7 +220,31 @@ typescript-ts-mode--font-lock-settings
(binary_expression left: (identifier) @font-lock-variable-name-face)
(binary_expression right: (identifier) @font-lock-variable-name-face)
- (arguments (identifier) @font-lock-variable-name-face))
+ (arguments (identifier) @font-lock-variable-name-face)
+
+ (parenthesized_expression (identifier) @font-lock-variable-name-face)
+ (parenthesized_expression (_ (identifier)) @font-lock-variable-name-face))
+
+ :language language
+ :override t
+ :feature 'property
+ `((property_signature
+ name: (property_identifier) @font-lock-property-face)
+ (public_field_definition
+ name: (property_identifier) @font-lock-property-face)
+ (member_expression
+ object: (identifier) @font-lock-variable-name-face)
+ (member_expression
+ property: (_) @font-lock-property-face)
+
+ (pair key: (property_identifier) @font-lock-variable-name-face)
+
+ (pair value: (identifier) @font-lock-variable-name-face)
+
+ ((shorthand_property_identifier) @font-lock-property-face)
+
+ ((shorthand_property_identifier_pattern)
+ @font-lock-property-face))
:language language
:override t
@@ -286,22 +310,8 @@ typescript-ts-mode--font-lock-settings
:override t
'((escape_sequence) @font-lock-escape-face)
- :language language
- :override t
- :feature 'property
- `((property_signature
- name: (property_identifier) @font-lock-property-face)
- (public_field_definition
- name: (property_identifier) @font-lock-property-face)
- (pair key: (property_identifier) @font-lock-variable-name-face)
-
- (pair value: (identifier) @font-lock-variable-name-face)
-
- ((shorthand_property_identifier) @font-lock-property-face)
-
- ((shorthand_property_identifier_pattern)
- @font-lock-property-face))))
+ ))
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-ts-mode))
--
2.37.2
^ permalink raw reply related [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-07 9:42 ` Jostein Kjønigsen
@ 2022-12-12 7:53 ` Jostein Kjønigsen
2022-12-14 18:46 ` Jostein Kjønigsen
0 siblings, 1 reply; 14+ messages in thread
From: Jostein Kjønigsen @ 2022-12-12 7:53 UTC (permalink / raw)
To: Theodor Thornhill, jostein, Yuan Fu; +Cc: 59831
On 07.12.2022 10:42, Jostein Kjønigsen wrote:
> On 07.12.2022 10:33, Theodor Thornhill wrote:
>>
>> Do we need this (this) here, or could that just go into the keyword
>> feature?
>>
>> Otherwise LGTM. Go ahead and install, Yuan, unless you have something
>> else to add :-)
>>
>> Theo
>
> You're right. We don't. I've cleaned that up in this patch, and also
> made sure to better support if-statements with negations.
>
> See new, attached patch with all changes applied.
>
> --
> Jostein
Looking at my local emacs-29 branch, this patch seems not to have been
applied yet.
Could you take a look and get it installed, Yuan?
--
Jostein
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-12 7:53 ` Jostein Kjønigsen
@ 2022-12-14 18:46 ` Jostein Kjønigsen
2022-12-14 19:03 ` Eli Zaretskii
0 siblings, 1 reply; 14+ messages in thread
From: Jostein Kjønigsen @ 2022-12-14 18:46 UTC (permalink / raw)
To: Theodor Thornhill, Yuan Fu, Eli Zaretskii; +Cc: 59831
On 12.12.2022 08:53, Jostein Kjønigsen wrote:
> On 07.12.2022 10:42, Jostein Kjønigsen wrote:
>> On 07.12.2022 10:33, Theodor Thornhill wrote:
>>>
>>> Do we need this (this) here, or could that just go into the keyword
>>> feature?
>>>
>>> Otherwise LGTM. Go ahead and install, Yuan, unless you have something
>>> else to add :-)
>>>
>>> Theo
>>
>> You're right. We don't. I've cleaned that up in this patch, and also
>> made sure to better support if-statements with negations.
>>
>> See new, attached patch with all changes applied.
>>
>> --
>> Jostein
>
> Looking at my local emacs-29 branch, this patch seems not to have been
> applied yet.
>
> Could you take a look and get it installed, Yuan?
>
> --
> Jostein
>
I hate to be nagging, but I still don't see this patch applied.
If Yuan is busy with stuff, could someone else help get this installed
into the emacs-29 branch?
--
Jostein
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-14 18:46 ` Jostein Kjønigsen
@ 2022-12-14 19:03 ` Eli Zaretskii
2022-12-14 19:39 ` Yuan Fu
0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2022-12-14 19:03 UTC (permalink / raw)
To: jostein; +Cc: casouri, 59831-done, theo
> Date: Wed, 14 Dec 2022 19:46:06 +0100
> From: Jostein Kjønigsen <jostein@secure.kjonigsen.net>
> Cc: 59831@debbugs.gnu.org
>
> If Yuan is busy with stuff, could someone else help get this installed
> into the emacs-29 branch?
Done.
Please in the future try following more closely our conventions for
writing commit log messages. (See the minor corrections I made in
this commit.)
Thanks.
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-14 19:03 ` Eli Zaretskii
@ 2022-12-14 19:39 ` Yuan Fu
2022-12-14 21:56 ` Jostein Kjønigsen
0 siblings, 1 reply; 14+ messages in thread
From: Yuan Fu @ 2022-12-14 19:39 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: theo, 59831-done, jostein
> On Dec 14, 2022, at 11:03 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>
>> Date: Wed, 14 Dec 2022 19:46:06 +0100
>> From: Jostein Kjønigsen <jostein@secure.kjonigsen.net>
>> Cc: 59831@debbugs.gnu.org
>>
>> If Yuan is busy with stuff, could someone else help get this installed
>> into the emacs-29 branch?
>
> Done.
>
> Please in the future try following more closely our conventions for
> writing commit log messages. (See the minor corrections I made in
> this commit.)
>
> Thanks.
Ah, sorry, I must have somehow lost track of this report.
Yuan
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-14 19:39 ` Yuan Fu
@ 2022-12-14 21:56 ` Jostein Kjønigsen
2022-12-14 22:21 ` Yuan Fu
0 siblings, 1 reply; 14+ messages in thread
From: Jostein Kjønigsen @ 2022-12-14 21:56 UTC (permalink / raw)
To: Yuan Fu; +Cc: theo, Eli Zaretskii, 59831-done, jostein
In your defence, it can be hard to keep track of 4-5 ongoing patches/bugs from a single contributor ;)
I’m just trying to make sure none of the patches get lost on the way!
—
Jostein Kjønigsen
https://jostein.kjønigsen.net
> On 14 Dec 2022, at 20:45, Yuan Fu <casouri@gmail.com> wrote:
>
>
>
>>> On Dec 14, 2022, at 11:03 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>>>
>>> Date: Wed, 14 Dec 2022 19:46:06 +0100
>>> From: Jostein Kjønigsen <jostein@secure.kjonigsen.net>
>>> Cc: 59831@debbugs.gnu.org
>>>
>>> If Yuan is busy with stuff, could someone else help get this installed
>>> into the emacs-29 branch?
>>
>> Done.
>>
>> Please in the future try following more closely our conventions for
>> writing commit log messages. (See the minor corrections I made in
>> this commit.)
>>
>> Thanks.
>
> Ah, sorry, I must have somehow lost track of this report.
>
> Yuan
^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified
2022-12-14 21:56 ` Jostein Kjønigsen
@ 2022-12-14 22:21 ` Yuan Fu
0 siblings, 0 replies; 14+ messages in thread
From: Yuan Fu @ 2022-12-14 22:21 UTC (permalink / raw)
To: Jostein Kjønigsen; +Cc: theo, Eli Zaretskii, 59831-done, jostein
> On Dec 14, 2022, at 1:56 PM, Jostein Kjønigsen <jostein@secure.kjonigsen.net> wrote:
>
> In your defence, it can be hard to keep track of 4-5 ongoing patches/bugs from a single contributor ;)
>
> I’m just trying to make sure none of the patches get lost on the way!
And thank you for your efforts! It’s a lot of work to make those changes, put them into a patch, send a bug report, and do multiple ones at the same time. I appreciate it very much.
Yuan
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2022-12-14 22:21 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-05 8:42 bug#59831: 29.0.60; typescript-ts-mode: Variables, properties & fields are often not fontified Jostein Kjønigsen
2022-12-05 8:51 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-05 9:05 ` Jostein Kjønigsen
2022-12-05 9:24 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-05 20:13 ` Yuan Fu
2022-12-07 9:24 ` Jostein Kjønigsen
2022-12-07 9:33 ` Theodor Thornhill via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-07 9:42 ` Jostein Kjønigsen
2022-12-12 7:53 ` Jostein Kjønigsen
2022-12-14 18:46 ` Jostein Kjønigsen
2022-12-14 19:03 ` Eli Zaretskii
2022-12-14 19:39 ` Yuan Fu
2022-12-14 21:56 ` Jostein Kjønigsen
2022-12-14 22:21 ` Yuan Fu
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).