From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jostein =?UTF-8?Q?Kj=C3=B8nigsen?= Newsgroups: gmane.emacs.bugs Subject: bug#59904: 29.0.60; js-ts-mode does not fontify method-call to object-instances using font-lock-function-name Date: Thu, 8 Dec 2022 15:46:13 +0100 Message-ID: <88850c60-60ad-8713-dba2-f9f42016f219@secure.kjonigsen.net> References: <2657cf47-c2af-eeba-265f-3249b9f38e4c@secure.kjonigsen.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------MG50guAL4VFUoFUkjKmluMlH" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27687"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 To: Yuan Fu , Theodor Thornhill , 59904@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Dec 08 15:47:22 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3IBE-0006tj-LE for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 08 Dec 2022 15:47:20 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p3IB2-0006tq-Nk; Thu, 08 Dec 2022 09:47:08 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p3IAx-0006s3-52 for bug-gnu-emacs@gnu.org; Thu, 08 Dec 2022 09:47:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p3IAw-0002kq-SI for bug-gnu-emacs@gnu.org; Thu, 08 Dec 2022 09:47:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p3IAw-0003iw-3P for bug-gnu-emacs@gnu.org; Thu, 08 Dec 2022 09:47:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jostein =?UTF-8?Q?Kj=C3=B8nigsen?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 08 Dec 2022 14:47:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59904 X-GNU-PR-Package: emacs Original-Received: via spool by 59904-submit@debbugs.gnu.org id=B59904.167051079214305 (code B ref 59904); Thu, 08 Dec 2022 14:47:02 +0000 Original-Received: (at 59904) by debbugs.gnu.org; 8 Dec 2022 14:46:32 +0000 Original-Received: from localhost ([127.0.0.1]:57191 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p3IAQ-0003if-DQ for submit@debbugs.gnu.org; Thu, 08 Dec 2022 09:46:32 -0500 Original-Received: from wout3-smtp.messagingengine.com ([64.147.123.19]:53855) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p3IAN-0003iZ-0s for 59904@debbugs.gnu.org; Thu, 08 Dec 2022 09:46:29 -0500 Original-Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id B4596320055E; Thu, 8 Dec 2022 09:46:19 -0500 (EST) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Thu, 08 Dec 2022 09:46:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= secure.kjonigsen.net; h=cc:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; t=1670510779; x= 1670597179; bh=WhZvcSzFjFJvwWLbc1SP3KMlt/HyUYV/xPh6SVFu/QI=; b=S aELwx4oMeRak7UuEa79byptDBdPv2dc+JoaFN+ohSylXkm+w1qujVPqK6/1TlU7+ hmyd+S+Fi9xfFe1QGqJLm7TvMSWMwIaK4TH0aW/pRpjTDdXuzTSQRZNx0j2ttlMe +M0v6JATCzUckEeWY1Nxt7uDlGGfBTNLXJkdEDYbKdJxuMQieaCfVoaGP+kKedZ4 6ZCaa2u35XRU9XHNwMj8yDInTsWXkECdCFPaR3iVHHOvkott7rQRBuZGLCcBKC/b AdxD6nWs7uuoAgb3pxn6K5RN+FCJh+G/DFGR89ZqJmgk372wzomg9LcEfu4nHAmg 4Zlx2yRekd2qrGHgW3HNQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1670510779; x=1670597179; bh=WhZvcSzFjFJvwWLbc1SP3KMlt/Hy UYV/xPh6SVFu/QI=; b=svUZXceD2E1puiviF0QRvlsWnJPa4TkwWN5YvnAZTENF GK9f8RkZXey24G+UmXnAk/8YKfGqOjA1/4XuEt63Gl1xmgeUXzeD9Q86eZioXOB/ gTPQGWoVeX+kpo1Yum8R5FaLrM3ExnOiHgNGXP8yc66DQuli4lyA/SXZ9U4TmKHO be048aJpdpj98rbI+0ohUR/WtV6rgdNbo1B/ZHn85CdAZjGS5REe/ggegEDfy4gD YhbF1Vhsv4geG5/sQpihnA8SMZW3f8fCCQr67ZaWJRCVwrNWPS2yXKXwg3hnEmnY P4WsIbtBzmvtNttjD8crX9G78HUYWXHFbaIbK3nrTg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvddtgdeilecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpegtkfffgggfuffhvfhfjgesmhdtreertdefjeenucfhrhhomheplfhoshhtvghi nhcumfhjpphnihhgshgvnhcuoehjohhsthgvihhnsehsvggtuhhrvgdrkhhjohhnihhgsh gvnhdrnhgvtheqnecuggftrfgrthhtvghrnhepleehkedugedtlefhffefveeutdffheek ueeftdehudfgudejtdegffejgfelgefhnecuffhomhgrihhnpehkjhhnihhgshgvnhdrnh honecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepjhho shhtvghinhesshgvtghurhgvrdhkjhhonhhighhsvghnrdhnvght X-ME-Proxy: Feedback-ID: ib2f84088:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 8 Dec 2022 09:46:16 -0500 (EST) Content-Language: en-US In-Reply-To: <2657cf47-c2af-eeba-265f-3249b9f38e4c@secure.kjonigsen.net> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:250296 Archived-At: This is a multi-part message in MIME format. --------------MG50guAL4VFUoFUkjKmluMlH Content-Type: multipart/alternative; boundary="------------ES3aPjnipLeDKNE4EFmJpLjZ" --------------ES3aPjnipLeDKNE4EFmJpLjZ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Looking into the code, a minimal code-repro looks like this: someObject.someMethod(); Activating treesit-explore-mode on that, yields the following tree: (expression_statement  (call_expression   function: (member_expression object: (identifier) . property: (property_identifier))   arguments: (arguments ( )))  ;) Now looking in js.el I see the following which looks like it's trying to fontify this, but for some reason it's not working:      (call_expression       function: [(identifier) @font-lock-function-name-face                  (member_expression                   property:                   (property_identifier) @font-lock-function-name-face)]) I'm guessing this fontification is being overridden further down (just like for csharp-ts-mode). From what I can tell, reversing the order of declarations seems to fix this for me. See attached path. -- Jostein On 08.12.2022 14:56, Jostein Kjønigsen wrote: > > As the title says, using js-ts-mode method-names are not fontified > properly. > > myFunction(); > myObject.myMethod(); > > In the above examples myFunction is fontified using > font-lock-function-name (expected) bit myMethod() is fontified using > font-lock-property-face (not expected). > > I would expect both calls to use font-lock-function-name for > fontification. > > -- > Jostein > > In GNU Emacs 29.0.60 (build 1, x86_64-pc-linux-gnu, GTK+ Version >  3.24.33, cairo version 1.16.0) of 2022-12-08 built on dev-jostein > Repository revision: 8fb2afe051168b2eac2bba0ee102039d0af90a05 > Repository branch: emacs-29 > Windowing system distributor 'The X.Org Foundation', version 11.0.12201001 > System Description: Ubuntu 22.04.1 LTS > > Configured using: >  'configure --with-tree-sitter' > > Configured features: > ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG > 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: JavaScript > > Minor modes in effect: >   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 >   treesit-explore-mode: t >   flycheck-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 >   shell-dirtrack-mode: t >   helm--remap-mouse-mode: t >   async-bytecomp-package-mode: t >   delete-selection-mode: t >   global-auto-revert-mode: t >   server-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 >   auto-fill-function: yas--auto-fill >   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-20221202.1727/transient hides > /home/jostein/build/emacs/lisp/transient > > Features: > (shadow sort flyspell ispell emacsbug message yank-media rfc822 mml > mml-sec epa derived mm-decode mm-bodies mm-encode mail-parse rfc2231 > mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums > mail-extr helm-command helm-elisp helm-eval typescript-ts-mode > lsp-diagnostics lsp-headerline lsp-icons lsp-modeline view elec-pair js > cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine > cc-vars cc-defs executable misearch multi-isearch vc-git diff-mode > vc-dispatcher winner ffap disp-table tramp-archive tramp-gvfs > tramp-cache warnings time-stamp zeroconf dbus helm-bookmark helm-net > helm-adaptive helm-info treemacs-bookmarks treemacs-tags bookmark > face-remap 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 realgud realgud-zshdb > realgud:zshdb-track-mode realgud:zshdb-core realgud:zshdb-init > realgud-trepan3k realgud:trepan3k-track-mode realgud:trepan3k-core > realgud:trepan3k-init realgud-trepan2 realgud:trepan2-track-mode > realgud:trepan2-core realgud:trepan2-init realgud-trepanpl > realgud:trepanpl-track-mode realgud:trepanpl-core realgud:trepanpl-init > realgud-trepanjs realgud:trepanjs-track-mode realgud:trepanjs-core > realgud:trepanjs-init realgud-lang-js realgud-trepan > realgud:trepan-track-mode realgud:trepan-core realgud:trepan-init > realgud-remake realgud:remake-track-mode realgud:remake-core > realgud:remake-init realgud-rdebug realgud-rdebug-track-mode > realgud-rdebug-core realgud-rdebug-init realgud-lang-ruby realgud-perldb > realgud:perldb-track-mode realgud:perldb-core realgud:perldb-init > realgud-lang-perl realgud-pdb realgud:pdb-track-mode realgud:pdb-core > realgud:pdb-init realgud-lang-python python treesit realgud-kshdb > realgud:kshdb-track-mode realgud:kshdb-core realgud:kshdb-init > realgud-gub realgud:gub-track-mode realgud:gub-core realgud:gub-init > realgud-gdb realgud:gdb-track-mode realgud:gdb-init realgud:gdb-core > realgud-bashdb realgud:bashdb-track-mode realgud:bashdb-core > realgud:bashdb-init realgud-lang-posix-shell realgud:run > realgud-locals-mode realgud-breakpoint-mode realgud-backtrack-mode > realgud-track-mode realgud-backtrace-mode realgud-attach > realgud-lang-java realgud-track realgud-shortkey realgud-menu > realgud-eval realgud-cmds realgud-send realgud-window realgud-utils > eshell realgud-init realgud-file realgud-core realgud-reset > realgud-buffer-helper realgud-buffer-breakpoint realgud-buffer-backtrace > realgud-locals realgud-buffer-locals realgud-buffer-command > realgud-buffer-info realgud-lochist realgud-bp realgud-bp-image-data > realgud-lang esh-mode esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg > esh-module esh-groups esh-util cus-start realgud-loc > realgud-buffer-source realgud-key key realgud-follow realgud-fringe > realgud-helper loc-changes realgud-regexp realgud-custom load-relative > 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 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 advice 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 shell > pcomplete 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 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 tree-sitter-indent-autoloads expand-region-autoloads > ido-yes-or-no-autoloads nodejs-repl-autoloads marmalade-client-autoloads > doom-modeline-autoloads elisp-slime-nav-autoloads > multiple-cursors-autoloads dracula-theme-autoloads > git-timemachine-autoloads crontab-mode-autoloads > highlight-symbol-autoloads ssh-config-mode-autoloads langtool-autoloads > dap-mode-autoloads lsp-treemacs-autoloads treemacs-autoloads > cfrs-autoloads posframe-autoloads gh-autoloads marshal-autoloads > logito-autoloads pcache-autoloads kv-autoloads toml-mode-autoloads > company-web-autoloads shrink-path-autoloads realgud-autoloads > realgud-recursive-autoloads load-relative-autoloads paredit-autoloads > bui-autoloads tree-sitter-langs-autoloads helpful-autoloads > elisp-refs-autoloads magit-autoloads magit-section-autoloads > git-commit-autoloads with-editor-autoloads flycheck-package-autoloads > package-lint-autoloads rust-mode-autoloads yaml-mode-autoloads > macrostep-autoloads lsp-docker-autoloads yaml-autoloads > lsp-mode-autoloads spinner-autoloads f-autoloads hydra-autoloads > nlinum-autoloads ht-autoloads loc-changes-autoloads transient-autoloads > compat-autoloads web-mode-autoloads undo-tree-autoloads queue-autoloads > ace-window-autoloads avy-autoloads bmx-mode-autoloads company-autoloads > test-simple-autoloads js2-mode-autoloads web-autoloads s-autoloads > ido-completing-read+-autoloads memoize-autoloads lv-autoloads > imenu-anywhere-autoloads helm-projectile-autoloads projectile-autoloads > helm-autoloads popup-autoloads helm-core-autoloads async-autoloads > tree-sitter-autoloads tsc-autoloads editorconfig-autoloads > json-mode-autoloads rx json-snatcher-autoloads yasnippet-autoloads > web-completion-data-autoloads cargo-autoloads markdown-mode-autoloads > pfuture-autoloads flycheck-autoloads pkg-info-autoloads epl-autoloads > info dash-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 581099 38842) >  (symbols 48 54552 1) >  (strings 32 185380 10974) >  (string-bytes 1 6025106) >  (vectors 16 107595) >  (vector-slots 8 2034690 131866) >  (floats 8 551 525) >  (intervals 56 4514 1049) >  (buffers 992 27)) > > -- > *Jostein Kjønigsen* > jostein.kjønigsen.no > jostein@kjonigsen.net - jostein@gmail.com --------------ES3aPjnipLeDKNE4EFmJpLjZ Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Looking into the code, a minimal code-repro looks like this:

someObject.someMethod();

Activating treesit-explore-mode on that, yields the following tree:

(expression_statement
 (call_expression
  function: (member_expression object: (identifier) . property: (property_identifier))
  arguments: (arguments ( )))
 ;)

Now looking in js.el I see the following which looks like it's trying to fontify this, but for some reason it's not working:

     (call_expression
      function: [(identifier) @font-lock-function-name-face
                 (member_expression
                  property:
                  (property_identifier) @font-lock-function-name-face)])

I'm guessing this fontification is being overridden further down (just like for csharp-ts-mode). From what I can tell, reversing the order of declarations seems to fix this for me.

See attached path.

--
Jostein

On 08.12.2022 14:56, Jostein Kjønigsen wrote:

As the title says, using js-ts-mode method-names are not fontified properly.

myFunction();
myObject.myMethod();

In the above examples myFunction is fontified using font-lock-function-name (expected) bit myMethod() is fontified using font-lock-property-face (not expected).

I would expect both calls to use font-lock-function-name for fontification.

--
Jostein

In GNU Emacs 29.0.60 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.33, cairo version 1.16.0) of 2022-12-08 built on dev-jostein
Repository revision: 8fb2afe051168b2eac2bba0ee102039d0af90a05
Repository branch: emacs-29
Windowing system distributor 'The X.Org Foundation', version 11.0.12201001
System Description: Ubuntu 22.04.1 LTS

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

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
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: JavaScript

Minor modes in effect:
  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
  treesit-explore-mode: t
  flycheck-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
  shell-dirtrack-mode: t
  helm--remap-mouse-mode: t
  async-bytecomp-package-mode: t
  delete-selection-mode: t
  global-auto-revert-mode: t
  server-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
  auto-fill-function: yas--auto-fill
  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-20221202.1727/transient hides /home/jostein/build/emacs/lisp/transient

Features:
(shadow sort flyspell ispell emacsbug message yank-media rfc822 mml
mml-sec epa derived mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mail-extr helm-command helm-elisp helm-eval typescript-ts-mode
lsp-diagnostics lsp-headerline lsp-icons lsp-modeline view elec-pair js
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs executable misearch multi-isearch vc-git diff-mode
vc-dispatcher winner ffap disp-table tramp-archive tramp-gvfs
tramp-cache warnings time-stamp zeroconf dbus helm-bookmark helm-net
helm-adaptive helm-info treemacs-bookmarks treemacs-tags bookmark
face-remap 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 realgud realgud-zshdb
realgud:zshdb-track-mode realgud:zshdb-core realgud:zshdb-init
realgud-trepan3k realgud:trepan3k-track-mode realgud:trepan3k-core
realgud:trepan3k-init realgud-trepan2 realgud:trepan2-track-mode
realgud:trepan2-core realgud:trepan2-init realgud-trepanpl
realgud:trepanpl-track-mode realgud:trepanpl-core realgud:trepanpl-init
realgud-trepanjs realgud:trepanjs-track-mode realgud:trepanjs-core
realgud:trepanjs-init realgud-lang-js realgud-trepan
realgud:trepan-track-mode realgud:trepan-core realgud:trepan-init
realgud-remake realgud:remake-track-mode realgud:remake-core
realgud:remake-init realgud-rdebug realgud-rdebug-track-mode
realgud-rdebug-core realgud-rdebug-init realgud-lang-ruby realgud-perldb
realgud:perldb-track-mode realgud:perldb-core realgud:perldb-init
realgud-lang-perl realgud-pdb realgud:pdb-track-mode realgud:pdb-core
realgud:pdb-init realgud-lang-python python treesit realgud-kshdb
realgud:kshdb-track-mode realgud:kshdb-core realgud:kshdb-init
realgud-gub realgud:gub-track-mode realgud:gub-core realgud:gub-init
realgud-gdb realgud:gdb-track-mode realgud:gdb-init realgud:gdb-core
realgud-bashdb realgud:bashdb-track-mode realgud:bashdb-core
realgud:bashdb-init realgud-lang-posix-shell realgud:run
realgud-locals-mode realgud-breakpoint-mode realgud-backtrack-mode
realgud-track-mode realgud-backtrace-mode realgud-attach
realgud-lang-java realgud-track realgud-shortkey realgud-menu
realgud-eval realgud-cmds realgud-send realgud-window realgud-utils
eshell realgud-init realgud-file realgud-core realgud-reset
realgud-buffer-helper realgud-buffer-breakpoint realgud-buffer-backtrace
realgud-locals realgud-buffer-locals realgud-buffer-command
realgud-buffer-info realgud-lochist realgud-bp realgud-bp-image-data
realgud-lang esh-mode esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg
esh-module esh-groups esh-util cus-start realgud-loc
realgud-buffer-source realgud-key key realgud-follow realgud-fringe
realgud-helper loc-changes realgud-regexp realgud-custom load-relative
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 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 advice 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 shell
pcomplete 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 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 tree-sitter-indent-autoloads expand-region-autoloads
ido-yes-or-no-autoloads nodejs-repl-autoloads marmalade-client-autoloads
doom-modeline-autoloads elisp-slime-nav-autoloads
multiple-cursors-autoloads dracula-theme-autoloads
git-timemachine-autoloads crontab-mode-autoloads
highlight-symbol-autoloads ssh-config-mode-autoloads langtool-autoloads
dap-mode-autoloads lsp-treemacs-autoloads treemacs-autoloads
cfrs-autoloads posframe-autoloads gh-autoloads marshal-autoloads
logito-autoloads pcache-autoloads kv-autoloads toml-mode-autoloads
company-web-autoloads shrink-path-autoloads realgud-autoloads
realgud-recursive-autoloads load-relative-autoloads paredit-autoloads
bui-autoloads tree-sitter-langs-autoloads helpful-autoloads
elisp-refs-autoloads magit-autoloads magit-section-autoloads
git-commit-autoloads with-editor-autoloads flycheck-package-autoloads
package-lint-autoloads rust-mode-autoloads yaml-mode-autoloads
macrostep-autoloads lsp-docker-autoloads yaml-autoloads
lsp-mode-autoloads spinner-autoloads f-autoloads hydra-autoloads
nlinum-autoloads ht-autoloads loc-changes-autoloads transient-autoloads
compat-autoloads web-mode-autoloads undo-tree-autoloads queue-autoloads
ace-window-autoloads avy-autoloads bmx-mode-autoloads company-autoloads
test-simple-autoloads js2-mode-autoloads web-autoloads s-autoloads
ido-completing-read+-autoloads memoize-autoloads lv-autoloads
imenu-anywhere-autoloads helm-projectile-autoloads projectile-autoloads
helm-autoloads popup-autoloads helm-core-autoloads async-autoloads
tree-sitter-autoloads tsc-autoloads editorconfig-autoloads
json-mode-autoloads rx json-snatcher-autoloads yasnippet-autoloads
web-completion-data-autoloads cargo-autoloads markdown-mode-autoloads
pfuture-autoloads flycheck-autoloads pkg-info-autoloads epl-autoloads
info dash-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 581099 38842)
 (symbols 48 54552 1)
 (strings 32 185380 10974)
 (string-bytes 1 6025106)
 (vectors 16 107595)
 (vector-slots 8 2034690 131866)
 (floats 8 551 525)
 (intervals 56 4514 1049)
 (buffers 992 27))

--------------ES3aPjnipLeDKNE4EFmJpLjZ-- --------------MG50guAL4VFUoFUkjKmluMlH Content-Type: text/x-patch; charset=UTF-8; name="0002-lisp-progmodes-js.el-Fix-fontification-of-method-inv.patch" Content-Disposition: attachment; filename*0="0002-lisp-progmodes-js.el-Fix-fontification-of-method-inv.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxYWM4YzgwM2EwMWI0YTE2YTE0N2JkYTM5MmU1ZWZiOTJmY2UyZGUwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sm9zdGVpbj0yMEtqPUMzPUI4bmln c2VuPz0gPGpvc3RlaW5Aa2pvbmlnc2VuLm5ldD4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDE1 OjQ1OjAwICswMTAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIGxpc3AvcHJvZ21vZGVzL2pzLmVs OiBGaXggZm9udGlmaWNhdGlvbiBvZgogbWV0aG9kLWludm9jYXRpb25zIGluIGpzLXRzLW1v ZGUuCgotLS0KIGxpc3AvcHJvZ21vZGVzL2pzLmVsIHwgMjQgKysrKysrKysrKysrLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvanMuZWwgYi9saXNwL3Byb2dtb2Rl cy9qcy5lbAppbmRleCA0NWRmZWYzNzJjZC4uODY0ZmMxMzAzY2YgMTAwNjQ0Ci0tLSBhL2xp c3AvcHJvZ21vZGVzL2pzLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL2pzLmVsCkBAIC0zNTQz LDYgKzM1NDMsMTcgQEAganMtLXRyZWVzaXQtZm9udC1sb2NrLXNldHRpbmdzCiAgICAgIChh cnJvd19mdW5jdGlvbgogICAgICAgcGFyYW1ldGVyOiAoaWRlbnRpZmllcikgQGZvbnQtbG9j ay12YXJpYWJsZS1uYW1lLWZhY2UpKQogCisgICA6bGFuZ3VhZ2UgJ2phdmFzY3JpcHQKKyAg IDpvdmVycmlkZSB0CisgICA6ZmVhdHVyZSAncHJvcGVydHkKKyAgIGAoKHByb3BlcnR5X2lk ZW50aWZpZXIpIEBmb250LWxvY2stcHJvcGVydHktZmFjZQorCisgICAgIChwYWlyIHZhbHVl OiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UpCisKKyAgICAg KChzaG9ydGhhbmRfcHJvcGVydHlfaWRlbnRpZmllcikgQGZvbnQtbG9jay1wcm9wZXJ0eS1m YWNlKQorCisgICAgICgoc2hvcnRoYW5kX3Byb3BlcnR5X2lkZW50aWZpZXJfcGF0dGVybikg QGZvbnQtbG9jay1wcm9wZXJ0eS1mYWNlKSkKKwogICAgOmxhbmd1YWdlICdqYXZhc2NyaXB0 CiAgICA6b3ZlcnJpZGUgdAogICAgOmZlYXR1cmUgJ2V4cHJlc3Npb24KQEAgLTM2MTEsMTgg KzM2MjIsNyBAQCBqcy0tdHJlZXNpdC1mb250LWxvY2stc2V0dGluZ3MKICAgIDpsYW5ndWFn ZSAnamF2YXNjcmlwdAogICAgOmZlYXR1cmUgJ2VzY2FwZS1zZXF1ZW5jZQogICAgOm92ZXJy aWRlIHQKLSAgICcoKGVzY2FwZV9zZXF1ZW5jZSkgQGZvbnQtbG9jay1lc2NhcGUtZmFjZSkK LQotICAgOmxhbmd1YWdlICdqYXZhc2NyaXB0Ci0gICA6b3ZlcnJpZGUgdAotICAgOmZlYXR1 cmUgJ3Byb3BlcnR5Ci0gICBgKChwcm9wZXJ0eV9pZGVudGlmaWVyKSBAZm9udC1sb2NrLXBy b3BlcnR5LWZhY2UKLQotICAgICAocGFpciB2YWx1ZTogKGlkZW50aWZpZXIpIEBmb250LWxv Y2stdmFyaWFibGUtbmFtZS1mYWNlKQotCi0gICAgICgoc2hvcnRoYW5kX3Byb3BlcnR5X2lk ZW50aWZpZXIpIEBmb250LWxvY2stcHJvcGVydHktZmFjZSkKLQotICAgICAoKHNob3J0aGFu ZF9wcm9wZXJ0eV9pZGVudGlmaWVyX3BhdHRlcm4pIEBmb250LWxvY2stcHJvcGVydHktZmFj ZSkpKQorICAgJygoZXNjYXBlX3NlcXVlbmNlKSBAZm9udC1sb2NrLWVzY2FwZS1mYWNlKSkK ICAgIlRyZWUtc2l0dGVyIGZvbnQtbG9jayBzZXR0aW5ncy4iKQogCiAoZGVmdW4ganMtLWZv bnRpZnktdGVtcGxhdGUtc3RyaW5nIChub2RlIG92ZXJyaWRlIHN0YXJ0IGVuZCAmcmVzdCBf KQotLSAKMi4zNC4xCgo= --------------MG50guAL4VFUoFUkjKmluMlH--