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>
patch 9.1.0474: CI: Test_ColonEight() fails on github runners
Problem: CI: Test_ColonEight() fails on github runners
(Ken Takata)
Solution: Run the test for files on the C: drive, where dos shortnames
are still enabled, refactor the tests to use a single setup
function for the preparation
Kentaro Hayashi [Mon, 10 Jun 2024 16:21:26 +0000 (18:21 +0200)]
runtime(deb822sources): add missing Enabled field in syntax script
closes: #14898
It lacks the support of Enabled: boolean option field [1]:
e.g.
Types: deb
Uris: https://paulcarroty.gitlab.io/vscodium-deb-rpm-repo/debs/
Components: main
Suites: vscodium
Architectures: amd64 i386 arm64 armhf
Enabled: yes Signed-By: /var/lib/extrepo/keys/vscodium.asc
This patch was also forwarded to upstream. [2]
runtime(java): Exclude lambda expressions from _when_ _switch-case_ label clauses (#14945)
These guard clauses are always boolean expressions, whereas
lambda expressions can only appear in either an assignment,
a casting, or an invocation context.
zeertzjq [Sun, 9 Jun 2024 16:24:05 +0000 (18:24 +0200)]
patch 9.1.0472: Inconsistencies between functions for option flags
Problem: Inconsistencies between functions for option flags.
Solution: Consistently use "unsigned int" as return type and rename
get_bkc_value() to get_bkc_flags() (zeertzjq).
closes: #14925
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Problem: tests: Test_ColonEight_MultiByte() fails on MS-Windows
Solution: mark test as flaky
This single line change should have happened as part of v9.1.469 (and I
mentioned it in the Commit message), but forgot to actually include the
change :facepalm
David Wagner [Wed, 5 Jun 2024 18:01:19 +0000 (20:01 +0200)]
patch 9.1.0468: GvimExt does not consult HKEY_CURRENT_USER
Problem: GvimExt does not consult HKEY_CURRENT_USER
Solution: Make GvimExt first consult HKEY_CURRENT_USER and then fall
back to HKEY_LOCAL_MACHINE to find gvim (David Wagner)
fixes: #14904
closes: #14917
Signed-off-by: David Wagner <dwagner@rydia.us> Signed-off-by: Christian Brabandt <cb@256bit.org>
Riley Bruins [Mon, 3 Jun 2024 18:40:45 +0000 (20:40 +0200)]
patch 9.1.0464: no whitespace padding in commentstring option in ftplugins
Problem: no whitespace padding in commentstring option in ftplugins
Solution: Change default to include whitespace padding, update
existing filetype plugins with the new default value
(Riley Bruins)
closes: #14843
Signed-off-by: Riley Bruins <ribru17@hotmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
glepnir [Mon, 3 Jun 2024 17:32:39 +0000 (19:32 +0200)]
patch 9.1.0463: no fuzzy-matching support for insert-completion
Problem: no fuzzy-matching support for insert-completion
Solution: enable insert-mode completion with fuzzy-matching
using :set completopt+=fuzzy (glepnir).
closes: #14878
Signed-off-by: glepnir <glephunter@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Gary Johnson [Sat, 1 Jun 2024 18:51:33 +0000 (20:51 +0200)]
patch 9.1.0456: Left shift is incorrect with vartabstop and shiftwidth=0
Problem: Left shift is incorrect with vartabstop and shiftwidth=0
Solution: make tabstop_at() function aware of shift direction
(Gary Johnson)
The problem was that with 'vartabstop' set and 'shiftwidth' equal 0,
left shifts using << were shifting the line to the wrong column. The
tabstop to the right of the first character in the line was being used
as the shift amount instead of the tabstop to the left of that first
character.
The reason was that the tabstop_at() function always returned the value
of the tabstop to the right of the given column and was not accounting
for the direction of the shift.
The solution was to make tabstop_at() aware of the direction of the
shift and to choose the tabtop accordingly.
A test was added to check this behavior and make sure it doesn't
regress.
While at it, also fix a few indentation/alignment issues.
fixes: #14864
closes: #14887
Signed-off-by: Gary Johnson <garyjohn@spocom.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
patch 9.1.0453: filetype: rasi files are not recognized
Problem: filetype: rasi files are not recognized
Solution: regonize '*.rasi' files as rasi filetype,
include a filetype and syntax plugin
(Pierrick Guillaume)
ported from: https://github.com/Fymyte/rasi.vim
closes: #14821
Signed-off-by: Pierrick Guillaume <pierguill@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
zeertzjq [Thu, 30 May 2024 17:27:25 +0000 (19:27 +0200)]
patch 9.1.0451: No test for escaping '<' with shellescape()
Problem: No test for escaping '<' with shellescape()
Solution: Add a test. Use memcpy() in code to make it easier to
understand. Fix a typo (zeertzjq).
closes: #14876
Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>