Ubaldo Tiberi [Sun, 23 Jun 2024 15:25:05 +0000 (17:25 +0200)]
runtime(termdebug): Refactored StartDebug_term and EndDebug functions
- Functions are way too long. Readability and maintainability should
be slightly improved.
- Some variables are re-assigned to their initial value at teardown.
This should not be needed since all internal variables are
re-initialized at startup of every Termdebug session.
closes: #15086
Signed-off-by: Ubaldo Tiberi <ubaldo.tiberi@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Aliaksei Budavei [Sun, 23 Jun 2024 08:03:33 +0000 (10:03 +0200)]
runtime(java): Compose "g:java_highlight_signature" and "g:java_highlight_functions"
With the variables defined, distinctly highlight parts of
a method declaration header: its name and parameter list
parens, from its type parameters, return type, and formal
parameters; and distinctly highlight parts of a lambda
expression: its parameter list parens and the arrow, from
its formal parameters and identifiers.
closes: #15083
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
LemonBoy [Sat, 22 Jun 2024 15:25:07 +0000 (17:25 +0200)]
patch 9.1.0514: Vim9: issue with comparing objects recursively
Problem: Vim9: issue with comparing objects recursively
(Yinzuo Jiang)
Solution: only set recursive == TRUE, when called from tv_equal(), not
from typeval_compare_object(), refactor code into object_equal()
function (LemonBoy)
The recursive flag in tv_equal should be set only when the caller is
tv_equal, meaning that the comparison depth is > 1. The comparison
predicates for other object types are all following this rule, except
for the object one, and that may cause some weird issues like causing
the max depth limit not to be initialized in some cases.
closes: #15076
Signed-off-by: LemonBoy <thatlemon@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Yinzuo Jiang [Sat, 22 Jun 2024 14:28:19 +0000 (16:28 +0200)]
runtime(termdebug): Change some variables to Enums
Problem: The types of some script variables in Termdebug
can be changed for readability
Solution: Change the type of some vars from string to `enum`
(Yinzuo Jiang)
closes: #15068
Signed-off-by: Yinzuo Jiang <jiangyinzuo@foxmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.0509: not possible to translate Vim script messages
Problem: not possible to translate Vim script messages
(RestorerZ)
Solution: implement bindtextdomain() and gettext() to support Vim script
message translations (Christ van Willegen)
fixes: #11637
closes: #12447
Signed-off-by: Christ van Willegen <cvwillegen@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Ubaldo Tiberi [Thu, 20 Jun 2024 20:17:34 +0000 (22:17 +0200)]
patch 9.1.0508: termdebug plugin can be further improved
Problem: termdebug plugin can be further improved
Solution: add sanity-check, timeout config, change vars to bool
update docs, add more tests (Ubaldo Tiberi)
fixes: #15061
closes: #15057
Signed-off-by: Ubaldo Tiberi <ubaldo.tiberi@google.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
In the presence of parameterised types whose names begin
with a capital letter and end with a less-than sign "<" that
introduces a type argument or a list of comma-separated type
arguments, followed by a greater-than sign ">", a variable
"g:java_highlight_generics" can be defined to have some
components of such types uniformly coloured (by picking
highlight groups for javaGenericsC{1,2}, javaWildcardBound).
Note that the diamond form and explicit type arguments do
not qualify for this kind of recognition.
For example,
------------------------------------------------------------
new java.util.HashSet<>().<String>toArray(new String[0]);
------------------------------------------------------------
Tyler Miller [Thu, 20 Jun 2024 18:31:32 +0000 (20:31 +0200)]
patch 9.1.0506: filetype: .envrc & .prettierignore not recognized
Problem: filetype: .envrc & .prettierignore not recognized
Solution: Detect '.envrc' as shell and '.prettierignore' as gitignore
filetype (Tyler Miller)
Support ft detection for `.envrc` files used by direnv, and
`.prettierignore` files used by prettier.
closes: #15053
resolves: neovim/neovim#29405
Signed-off-by: Tyler Miller <tmillr@proton.me> Signed-off-by: Christian Brabandt <cb@256bit.org>
PowerUser64 [Wed, 19 Jun 2024 18:32:11 +0000 (20:32 +0200)]
patch 9.1.0505: filetype: Faust files are not recognized
Problem: filetype: Faust files are not recognized
Solution: Detect '*.lib' files as Faust filetype, add detection for
'*.dsp' files (Faust or Make), remove '*.lib' from Cobol
filetype (PowerUser64)
closes: #14894
Signed-off-by: PowerUser64 <blake@blakenorth.net> Signed-off-by: Christian Brabandt <cb@256bit.org>
glepnir [Wed, 19 Jun 2024 18:20:48 +0000 (20:20 +0200)]
patch 9.1.0503: cannot use fuzzy keyword completion
Problem: cannot use fuzzy keyword completion
(Maxim Kim)
Solution: add the "fuzzycollect" value for the 'completeopt'
setting, to gather matches using fuzzy logic (glepnir)
fixes: #14912
closes: #14976
Signed-off-by: glepnir <glephunter@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
K.Takata [Wed, 19 Jun 2024 17:56:03 +0000 (19:56 +0200)]
patch 9.1.0502: MS-Windows: too much legacy code
Problem: MS-Windows: too much legacy code
Solution: Clean up old code
(Ken Takata)
* Remove very old codes for Cygwin version of GCC.
Nowadays Cygwin GCC cannot be used for building Win32 Vim.
(The `-mno-cygwin` option was removed in Cygwin GCC4.)
* Remove old codes for old versions of MinGW.
Remove `__MINGW32__` as much as possible.
* Adjust makefile.
closes: #15044
Signed-off-by: K.Takata <kentkt@csc.jp> Signed-off-by: Christian Brabandt <cb@256bit.org>
zeertzjq [Sun, 16 Jun 2024 06:44:05 +0000 (08:44 +0200)]
patch 9.1.0493: Test for patch 9.1.0489 doesn't fail without the fix
Problem: Test for patch 9.1.0489 doesn't fail without the fix.
Solution: Use "!" flag of feedkeys() so that ex_normal_busy is not set
and ins_compl_check_keys() is not skipped (zeertzjq).
closes: #15018
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Aliaksei Budavei [Sun, 16 Jun 2024 06:42:55 +0000 (09:42 +0300)]
runtime(java): Fold multi-line comments with the syntax kind of &fdm (#15016)
Also:
- Restore the capability to mark as an error braces nested
in parens with g:javaInParen.
- Try not to fold top-level-type bodies. (Defining multiple
package-private top level types in a single source file is
not recommended as it can impose order among compilation
units; so it is assumed that only one such top level type
is usually defined.)
- Compose ‘method header’ highlighting and block braces
folding.
- Do not highlight block braces whenever ‘method header’
highlighting is requested.
This bundling of ‘method headers’ and block braces for
highlighting can be traced back to Vim v5.0; however, no
comment or documentation entry conveys any justification.
For example, it is hard to discover the connection between
block braces for "while", "if", etc., statements and method
body block braces. The former behaviour can be attained in,
e.g. ~/.vim/after/syntax/java.vim:
------------------------------------------------------------
if exists("g:java_highlight_functions")
syn clear javaBlock javaInParen
syn match javaBlockOther "[{}]"
syn region javaBlock transparent matchgroup=javaBlockStart
\ start="\%(^\|^\S[^:]\+\)\@120<!{" end="}" fold
hi def link javaBlockStart javaFuncDef
hi def link javaBlockOther javaBlockStart
if exists("g:java_mark_braces_in_parens_as_errors")
syn match javaInParen contained "[{}]"
endif
endif
------------------------------------------------------------
Note: Read ‘a method header omitting a _throws_ clause’ for
every ‘method header’ appellation used above.
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
zeertzjq [Sat, 15 Jun 2024 13:37:11 +0000 (15:37 +0200)]
patch 9.1.0491: Cmdline pum doesn't work properly with 'rightleft'
Problem: Cmdline pum doesn't work properly with 'rightleft'.
Solution: Don't use curwin->w_p_rl in cmdline mode in pum_redraw(). Use
a static variable since pum_may_redraw() may be called in any
mode. Also correct position of other popups with 'rightleft'.
(zeertzjq)
closes: #15005
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
zeertzjq [Sat, 15 Jun 2024 13:08:27 +0000 (15:08 +0200)]
patch 9.1.0488: Wrong padding for pum "kind" with 'rightleft'
Problem: Wrong padding for pum "kind" with 'rightleft'.
Solution: Fix off-by-one error (zeertzjq).
The screen_fill() above is end-exclusive, and
- With 'rightleft' it fills `pum_col - pum_base_width - n + 1` to `col`,
so the next `col` should be `pum_col - pum_base_width - n`.
- With 'norightleft' it fills `col` to `pum_col - pum_base_width + n - 1`,
so the next `col` should be `pum_col - pum_base_width + n`.
closes: #15004
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
dkearns [Sat, 15 Jun 2024 13:06:17 +0000 (23:06 +1000)]
runtime(vim): Update base-syntax, match shebang lines (#15011)
Match shebang lines in Vim9 and legacy script.
Mark these as an error if they appear anywhere other than the first line
of a legacy-script file. In Vim9 script these match as normal line
comments rather than an error.
Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime(zip): MS-Windows: handle files with spaces properly
This change does the following 3 things:
1) non need to quote the file to be extracted
The zipfile plugin used to quote and fnameescape() the path to the
file to be extracted. However testing with unzip showed, that while this
works on Linux on Windows you shall not escape the blanks in filenames.
As long as the pathname is properly quoted, this words on Linux and
Windows.
2) reset shellslash (MS-Windows only)
When shellslash is set, filenames to the zip archive will be forward
quoted. However since the filename is eventually handed over to the
unzip command, we need to make sure to use native paths so that the
command will understand what file to open. Therefore, if shellslash is
set (and the shell is cmd.exe), replace any forward slashes by the
expected backslashes
3) style:
Use tabs for the Header, remove a few comments in the s:Escape() and
zip#read() functions
Doug Kearns [Thu, 13 Jun 2024 15:59:34 +0000 (01:59 +1000)]
runtime(html): Restore HTML syntax file tests
Rendered element content results in test failures on macOS and FreeBSD.
The included content for these elements was incidental to the primary
intent of the test to check element tag highlighting so set
g:html_no_rendering to disable content rendering.
FreeBSD fails for even an empty <strike> element.
See #13591 and #14215.
closes: #13595
Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Damien Riegel [Fri, 14 Jun 2024 16:15:11 +0000 (12:15 -0400)]
runtime(termdebug): close all buffers in the same way
For ASM and Variables buffer, check were done to make sure they existed
before attempting to close them, but not for debugged program or gdb
communication. The debugged program window is a user-facing one and
user might close it manually, so it's better to check if it exists.
Signed-off-by: Damien Riegel <damien@riegel.io> Signed-off-by: Christian Brabandt <cb@256bit.org>
Ubaldo Tiberi [Thu, 13 Jun 2024 17:23:07 +0000 (19:23 +0200)]
patch 9.1.0482: termdebug plugin needs more love
Problem: termdebug plugin needs more love
Solution: start with some more Vim9 refactoring
to improve maintenance and readability
(Ubaldo Tiberi)
List of Changes and the Reasoning Behind Them:
1) Introduction of InitScriptVariables() Function:
Reasoning: This function has been introduced to ensure that when you open and
close Termdebug, and then open it again, there are no leftover script variable
values from the previous session. Leftover values could potentially cause
issues. The goal is for each Termdebug session to be independent of previous
sessions. At startup, all script variables are initialized. The only exception
is g:termdebug_loaded located at the very beginning of the script to prevent
sourcing the script twice. The variables are declared at script level and
defined in InitScriptVariables().
2) More Descriptive Variable Names:
Reasoning: The names of variables have been made more comprehensive. Almost
every Termdebug buffer now has a variable to indicate its name and another
variable to indicate its number, improving code readability and
maintainability. Due to the latest discussion around the &mousemodel option
save/restore mechanism, perhaps some other variables shall be prepended with
saved_.
3) Consistent Naming for GDB Terminal Buffers:
Reasoning: The name of the GDB terminal buffer now matches the name of the GDB
program being used, e.g., 'gdb', 'mygdb', 'arm-eabi-none-gdb', etc. This
ensures clarity and consistency in identifying buffers.
4) Other minor improvements:
Moved EchoErr() on top, added another test, some refactoring, mainly changed
several 0 and 1 to true and false
closes: #14980
Signed-off-by: Ubaldo Tiberi <ubaldo.tiberi@volvo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Aliaksei Budavei [Thu, 13 Jun 2024 15:30:09 +0000 (18:30 +0300)]
runtime(java): Include element values in non-marker annotations (#14979)
Make a formal definition for normal and single-element kinds
of annotations that otherwise require for their containment
to repeat each time all syntax groups that describe element
values.
glepnir [Wed, 12 Jun 2024 18:31:13 +0000 (20:31 +0200)]
patch 9.1.0478: potential deref of NULL pointer in fuzzy_match_str_with_pos
Problem: potential deref of NULL pointer in fuzzy_match_str_with_pos()
on cleanup (after v9.1.0476)
Solution: Only free the pointer if it is non-NULL (glepnir)
closes: #14973
Signed-off-by: glepnir <glephunter@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.0477: block_editing errors out when using <enter>
Problem: block_editing errors out when using <enter>
(Ali Rizvi-Santiago, after v9.1.0274)
Solution: Change ins_len from size_t to int so that the test
if ins_len is negative actually works properly
Peter Aronoff [Tue, 11 Jun 2024 17:22:53 +0000 (19:22 +0200)]
runtime(doc): clarify documentation for "v" position at line()
Problem: the previous documentation falsely states that "v" always
refers to the start of a visual area. In fact, the reference of "v" and
"." complement each other. If the cursor is at the start of
a (characterwise) visual area, then "v" refers to the end of the area.
Solution: be more verbose and explicit about the connection between "."
and "v" and also refer to |v_o| which many vim users will be familiar
with for visual areas.
Signed-off-by: Peter Aronoff <peter@aronoff.org> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.0475: cmod_split modifier is always reset in term_start()
Problem: cmod_split modifier is always reset in term_start()
Solution: only clear the WSP_VERT flag, if it is not already in
cmdmod.cmod_split (Yegappan Lakshmanan)
closes: #14961
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>