55aabfea4a Fix c-ts-mode comment indent
8377ed5298 Highlight identifier in import statements in js-ts-mode
aa9df1260c Don't print named tree-sitter nodes with parenthesizes (b...
e385c099b8 Improve fontification for import-statements in typescript...
28dd602138 Fix c-ts-mode indentation for 2nd line in block comment (...
8a36a0f44a ; xref.el: Bump version
f16cc7c49c ; project.el: Bump version
ebc5263667 ; * src/callint.c (Finteractive): Doc string clarification.
c1401d1c6c * lisp/vc/diff-mode.el (diff-font-lock-keywords): Check f...
1f8ad353d9 Minor improvement for tree-sitter explorer
ef87c75566 Make sure NODE is not the root node in tree-sitter indent...
1238fa8e49 Fix label indent of GNU and Linux style in c-ts-mode (bug...
dc911e4ba5 Improve go-ts-mode Imenu, navigation and electric pair (b...
20f36c8f6f ; ruby.rb: Fix pattern matching syntax and extend the exa...
d46f7f4edc Revert "Add c-or-c++-ts-mode (bug#59613)"
1469aac20d ; * src/pgtkfns.c (parse_resource_key): Use recursive sch...
da96a1fd74 Add back renamed function 'font-lock-fontify-syntacticall...
b1aa720671 ; * lisp/progmodes/ruby-ts-mode.el: Fix compilation warni...
5cb01ac5d7 ; * src/callint.c (Finteractive): Fix the doc string (bug...
53e64cfb85 Improve options and docs of M-x command completion
fef4f18cc3 ; Fix NEWS
e04b3d41bb Update to Org 9.6-90-ga6523f
e3d806b417 Fix string fontification on python-ts-mode (bug#60599)
800e15e3be Fix string-interpolation feature of python-ts-mode (bug#6...
38b63f4c3c Add indentation rule for concatenated_string (bug#60572)
2cdd75a18f Fix highlighting of variable-declarations in typescript-t...
73168793c0 Fix label indentation for Linux style in c-ts-mode (bug#6...
8575043f56 Remove duplicate entries in c-ts-mode's Imenu
ef7f3c6388 Fix use of treesit-ready-p in c/c++-ts-mode
cc1de953d4 ; * lisp/progmodes/gud.el (gud-tooltip-modes): Add ts- mo...
16f1e47ca8 ; * lisp/align.el (align-c++-modes): Add c/c++-ts-mode.
508389ad2b Add documentation for c/c++-ts-mode (bug#60443)
ee3e8d3f92 (ruby-ts--font-lock-settings): Improve highlighting in pa...
614f8c431d Optionally include the namespace in c-ts-mode--declarator...
7c356934fb Support namespaces in c++-ts-mode (bug#60397)
757c2c2592 Fix c-ts-mode--looking-at-star
1df2826639 Add c-or-c++-ts-mode (bug#59613)
0cb686ffb6 Document the 'definition-name' property.
7f855b5297 ; Fix description of etc/DOC
e9341119fe ; Fix documentation of etc/DOC
86a3462e3d (treesit-simple-indent-presets): Do that for 'or' as well.
e0fef510b0 ; Minor rewording of tree-sitter terminology
f58452e3ae Fix 'python-shell-buffer-substring' when START is in midd...
7f9588685a ; Fix last change
e8b85f225d Rearrange the "Saving Emacs Sessions" section of the user...
# Conflicts:
# etc/NEWS
# lisp/progmodes/c-ts-mode.el
XDG_DATA_DIRS may consist of multiple directories, and
g_settings_schema_source_get_default composes these into a recursive
schema source. One must pass TRUE to g_settings_schema_source_lookup,
otherwise only the first directory in XDG_DATA_DIRS is searched.
It follows that in the case that the directory containing the compiled
GSettings schema for Emacs is not the first in XDG_DATA_DIRS,
parse_resource_key will not accept any resource key, which causes
pgtk_get_defaults_value and pgtk_set_defaults_value to fail.
This impacts systems that compose multiple GSettings schema sources
via XDG_DATA_DIRS, such Flatpak and NixOS.
Supporting GIO documentation for g_settings_schema_source_get_default:
> The returned source may actually consist of multiple schema sources
> from different directories, depending on which directories were given
> in `XDG_DATA_DIRS` and `GSETTINGS_SCHEMA_DIR`. For this reason, all
> lookups performed against the default source should probably be done
> recursively.
Bug#60565
Copyright-paperwork-exempt: yes
0f5e74f173 ruby-ts-mode: Highlight method and block parameters
f1aa306f91 ruby-ts-mode: Highlight variable assignments
089b08eb3e ruby-ts-mode: Move 'self' and 'super' from constants to k...
7ede600273 (ruby-ts-mode): Split font-lock feature 'builtin' into two
ec172d748f Avoid assertion violation due to fill-column indicator face
62c2963ce6 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
2e6070f16c ; Another review of etc/NEWS
16eca92415 ; * src/gnutls.c (Fgnutls_deinit): Fix typo in doc string...
4753b58786 * lisp/cedet/semantic/symref/grep.el: Support ts-modes (b...
8a18369afd ; Another fix for doc strings of 2 treesit.el functions
3fc6883351 ; Fix the doc strings of 2 treesit.el functions
83ce7c861e Make 'toml-ts-mode' optional
# Conflicts:
# etc/NEWS
* src/xdisp.c (extend_face_to_end_of_line): Use the original
iterator metrics for the stretch glyph, the one unaffected by the
'fill-column-indicator' face. (Bug#60580)
6dd3e352f4 Extract common code into ruby-base-mode to derive from
94e330243e ruby-ts-mode: Indentation fixes
9b24417dda ruby-ts--font-lock-settings: Use more standard faces
9e6536e4d9 ruby-ts-mode: Standardize the string literal highlights
1a9a1fdebf Improve fontification in java-ts-mode (bug#60492)
dfdf9c21cb Fontification improvements in typescript-ts-mode (bug#60500)
68e68dfeef Improve fontification consistency in js-ts-mode (bug#60503)
aef869e74f ; Update tree-sitter manual
4ef12cfb1f ; Fix tree-sitter manual title case
aab8ddca5e ; nt/INSTALL: Update for Emacs 29.
809fbb0e8c ; Update copyright notice in tramp-sh.el
f8f5202487 (typescript/tsx-ts-mode): Split font-lock feature list in...
a86a213e1a js-ts-mode: Move 'string-interpolation' to font-lock level 3
d26b523886 Fix shrinking of the tab-bar
3f7ea621b9 ; Fix typos in ruby-ts-mode.el
9599b05431 ; Skip ruby-ts tests if grammar is not available
ff35ac9dfa Fix default-port regression in erc-select-read-args
b7ad0b4014 ; Clarify doc strings of 'call-process' and 'call-process...
* src/fileio.c (init_fileio):
No longer any need to set write-region-inhibit-fsync here.
(syms_of_fileio): Default write-region-inhibit-fsync to t (Bug#60474).
* src/haikufns.c (haiku_change_tab_bar_height):
* src/pgtkfns.c (pgtk_change_tab_bar_height):
* src/nsfns.m (ns_change_tab_bar_height):
* src/w32fns.c (w32_change_tab_bar_height):
* src/xfns.c (x_change_tab_bar_height): Don't let the number of
tab-bar lines degenerate to zero due to integer division.
(Bug#60210)
cae528457c ; Add 2023 to copyright years.
b394359261 Improve documentation of 'isearch-open-overlay-temporary'
ab3210e709 Document 'use-package' in the 2 main manuals
# Conflicts:
# etc/refcards/ru-refcard.tex
# lib/explicit_bzero.c
# m4/explicit_bzero.m4
* src/gnutls.c (key_file2_aux): Don't use GNUTLS_PKCS_PBES2_*
constants that are defined only in latest versions of GnuTLS.
(Bug#50507)
(Fgnutls_boot): Mention in the doc string that some flags of
'gnutls_certificate_set_x509_key_file2' are only supported since
GnuTLS 3.6.3.
* lisp/net/gnutls.el (gnutls-boot-parameters): Add the keys :pass and
:flags, and update the documentation.
* src/gnutls.c (gnutls-boot): Add the keys :pass and :flags, and
update the documentation.
(syms_of_gnutls): Add the symbols :pass, :flags, and the symbols that
correspond to the enumeration constants of the GnuTLS enum
`gnutls_pkcs_encrypt_flags_t'.
(key_file2_aux): Private helper function that translates a list of
symbols to its corresponding `unsigned int' value of the GnuTLS C enum
`gnutls_pkcs_encrypt_flags_t'.
(Bug#50507)
Also rename treesit-language-version to treesit-library-abi-version,
because the old name is somewhat misleading.
* doc/lispref/parsing.texi (Language Grammar): Update.
* src/treesit.c (Ftreesit_library_abi_version): Rename.
(Ftreesit_language_abi_version): New function.
* src/treesit.c (Ftreesit_node_first_child_for_pos)
(Ftreesit_node_descendant_for_range): Check validity of buffer
positions before converting them to byte-positions, to avoid
assertion violations in buf_charpos_to_bytepos.
909091d757 ; Minor cleanup for tree-sitter font-lock rules in js-ts-...
e78e69b331 Clean up font-lock rules in js-ts-mode
0a61e4e2b7 ; * doc/lispref/parsing.texi (Using Parser): Minor improv...
398ed75c27 ; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragrap...
19b8733aa2 Fix syntax for < and > in c++-ts-mode (bug#60351)
f509246ba1 Call tree-sitter parser notifier on the first parse
ec6feeaa19 Fix tree-sitter parser notifier recursion
See the comment for detail.
* src/treesit.c (treesit_ensure_parsed): Move the need_reparse short
circuit to the very beginning. Move the call to
treesit_call_after_change_functions to the very end.
* src/w32term.c (syms_of_w32term) <w32-yes-no-dialog-show-cancel>:
New boolean variable.
(w32_initialize): Fix query for visible system caret: 'bool' is a
single-byte data type, whereas SystemParametersInfo wants a BOOL,
which is a 32-bit int.
* src/w32menu.c (simple_dialog_show): Show "Cancel" button only if
'w32-yes-no-dialog-show-cancel' is non-nil.
* etc/NEWS: Announce the change.
I realized that using an arbitrary function as the predicate in
queries is very helpful for some queries I'm writing for python and
javascript, and presumably most other languages[1].
Granted, we can already filter out unwanted nodes by using a function
instead of a face for the capture name, and (1) determine whether the
captured node is valid and (2) fontify that node if it's valid.
However, such approach is a bit more cumbersome and more importantly
gets in the way of another potential use of the fontification queries:
context extraction.
For example, I could use the query for the 'variable' feature to get
all the variables in a certain region. In this use-case, we want the
filtering happen before returning the captured nodes.
Besides, the change is relatively small and straightforward: most code
are already there, I just need to add some boilerplate.
[1] For a code like aa.bb(cc), we want bb to be in function face,
because obviously its a function. But for aa.bb, we want bb to be in
property face, because it's a property. In the AST, bb is always a
property, the difference between the two cases is the enclosing node:
in the first case, aa.bb is in a "call_expression" node, indicating
that bb is used as a function (a method). So we want a predicate
function that checks whether bb is used as a function or a property,
and determine whether it should be in function or property face.
* doc/lispref/parsing.texi (Pattern Matching): Update manual.
* src/treesit.c (Ftreesit_pattern_expand): Handle :pred.
(treesit_predicate_capture_name_to_node): A new function extracted
from treesit_predicate_capture_name_to_text.
(treesit_predicate_capture_name_to_text): Use the newly extracted
function.
(treesit_predicate_pred): New predicate function.
(treesit_eval_predicates): Add new predicate. Also fix a bug: we want
to AND the results of each predicate.
* test/src/treesit-tests.el (treesit--ert-pred-last-sibling): New
helper function.
(treesit-query-api): Test #pred predicate.
* src/xdisp.c (redisplay_tab_bar): When 'auto-resize-tab-bar' is
not 'grow-only', also consider the case when the tab-bar height
needs to shrink. Fixes bug#60210.
* src/lisp.h: Do not include stdalign.h, as Gnulib now
approximates C23 (where stdalign.h does nothing) and config.h
already includes stdalign.h as needed on pre-C23 platforms.
* src/json.c (json_available_p): Use original code. Always return
true for !WINDOWSNT.
(ensure_json_available): Now defined only on WINDOWSNT.
(Fjson_serialize, Fjson_insert, Fjson_parse_string)
(Fjson_parse_buffer): Call ensure_json_available only on
WINDOWSNT.
* lisp/subr.el (json-available-p): Simplify.
* etc/NEWS: Document that "invisible" frames are now redisplayed
if the compositing manager is still displaying it as part of a
thumbnail out of Emacs's control.
* src/dispnew.c (Fredraw_display): Use FRAME_REDISPLAY_P.
* src/frame.h (FRAME_REDISPLAY_P): New macro.
* src/xdisp.c (clear_garbaged_frames, echo_area_display)
(prepare_menu_bars, redisplay_internal, display_and_set_cursor)
(gui_clear_cursor): Use FRAME_REDISPLAY_P to determine whether
or not a frame should be redisplayed.
* src/xfns.c (Fx_create_frame): Set visibility state initially.
* src/xterm.c (handle_one_xevent): Likewise.
* src/xterm.h (struct x_output): New field `visibility_state'.