backport: 23.0.2

This commit is contained in:
FalsePattern 2025-03-20 00:23:35 +01:00
parent 1450dd76eb
commit 9176cdd439
Signed by: falsepattern
GPG key ID: E930CDEC50C50E23
5 changed files with 115 additions and 49 deletions

View file

@ -17,6 +17,13 @@ Changelog structure reference:
## [Unreleased] ## [Unreleased]
## [23.0.2]
### Fixed
- Zig
- Documentation comment after regular comment was being highlighted as regular comment
## [23.0.1] ## [23.0.1]
### Fixed ### Fixed

View file

@ -36,8 +36,10 @@ import static com.falsepattern.zigbrains.zig.psi.ZigTypes.*;
%type IElementType %type IElementType
%unicode %unicode
CRLF=\R WHITE_SPACE=\s+
WHITE_SPACE=[\s]+
// visual studio parity
LF=\r\n?|[\n\u0085\u2028\u2029]
bin=[01] bin=[01]
bin_="_"? {bin} bin_="_"? {bin}
@ -54,13 +56,13 @@ dec_int={dec} {dec_}*
hex_int={hex} {hex_}* hex_int={hex} {hex_}*
char_char= \\ . char_char= \\ .
| [^\'\n] | [^\'\r\n\u0085\u2028\u2029]
string_char= \\ . string_char= \\ .
| [^\"\n] | [^\"\r\n\u0085\u2028\u2029]
all_nl_wrap=[^\n]* [ \n]* nl_wrap={LF} (\s|{LF})*
all_no_nl=[^\n]+ all_no_nl=[^\r\n\u0085\u2028\u2029]+
FLOAT= "0x" {hex_int} "." {hex_int} ([pP] [-+]? {dec_int})? FLOAT= "0x" {hex_int} "." {hex_int} ([pP] [-+]? {dec_int})?
@ -84,30 +86,35 @@ BUILTINIDENTIFIER="@"[A-Za-z_][A-Za-z0-9_]*
%state UNT_SQUOT %state UNT_SQUOT
%state UNT_DQUOT %state UNT_DQUOT
%state CDOC_CMT %state CMT_LINE
%state DOC_CMT %state CMT_DOC
%state LINE_CMT %state CMT_CDOC
%% %%
//Comments //Comments
<YYINITIAL> "//!" { yybegin(CDOC_CMT); } <YYINITIAL> "//!" { yybegin(CMT_CDOC); }
<CDOC_CMT> {all_nl_wrap} "//!" { } <YYINITIAL> "////" { yybegin(CMT_LINE); }
<CDOC_CMT> {all_no_nl} { } <YYINITIAL> "///" { yybegin(CMT_DOC); }
<CDOC_CMT> \n { yybegin(YYINITIAL); return CONTAINER_DOC_COMMENT; } <YYINITIAL> "//" { yybegin(CMT_LINE); }
<CDOC_CMT> <<EOF>> { yybegin(YYINITIAL); return CONTAINER_DOC_COMMENT; }
<YYINITIAL> "///" { yybegin(DOC_CMT); } <CMT_LINE> {all_no_nl} { }
<DOC_CMT> {all_nl_wrap} "///" { } <CMT_LINE> {nl_wrap} "////" { }
<DOC_CMT> {all_no_nl} { } <CMT_LINE> {nl_wrap} "///" { yypushback(yylength()); yybegin(YYINITIAL); return LINE_COMMENT; }
<DOC_CMT> \n { yybegin(YYINITIAL); return DOC_COMMENT; } <CMT_LINE> {nl_wrap} "//" { }
<DOC_CMT> <<EOF>> { yybegin(YYINITIAL); return DOC_COMMENT; } <CMT_LINE> {LF} { yybegin(YYINITIAL); return LINE_COMMENT; }
<CMT_LINE> <<EOF>> { yybegin(YYINITIAL); return LINE_COMMENT; }
<YYINITIAL> "//" { yybegin(LINE_CMT); } <CMT_DOC> {all_no_nl} { }
<LINE_CMT> {all_nl_wrap} "//" { } <CMT_DOC> {nl_wrap} "////" { yypushback(yylength()); yybegin(YYINITIAL); return DOC_COMMENT; }
<LINE_CMT> {all_no_nl} { } <CMT_DOC> {nl_wrap} "///" { }
<LINE_CMT> \n { yybegin(YYINITIAL); return LINE_COMMENT; } <CMT_DOC> {LF} { yybegin(YYINITIAL); return DOC_COMMENT; }
<LINE_CMT> <<EOF>> { yybegin(YYINITIAL); return LINE_COMMENT; } <CMT_DOC> <<EOF>> { yybegin(YYINITIAL); return DOC_COMMENT; }
<CMT_CDOC> {all_no_nl} { }
<CMT_CDOC> {nl_wrap} "//!" { }
<CMT_CDOC> {LF} { yybegin(YYINITIAL); return CONTAINER_DOC_COMMENT; }
<CMT_CDOC> <<EOF>> { yybegin(YYINITIAL); return CONTAINER_DOC_COMMENT; }
//Symbols //Symbols
<YYINITIAL> "&" { return AMPERSAND; } <YYINITIAL> "&" { return AMPERSAND; }
@ -227,24 +234,31 @@ BUILTINIDENTIFIER="@"[A-Za-z_][A-Za-z0-9_]*
<YYINITIAL> "volatile" { return KEYWORD_VOLATILE; } <YYINITIAL> "volatile" { return KEYWORD_VOLATILE; }
<YYINITIAL> "while" { return KEYWORD_WHILE; } <YYINITIAL> "while" { return KEYWORD_WHILE; }
//Strings
<YYINITIAL> "'" { yybegin(CHAR_LIT); } <YYINITIAL> "'" { yybegin(CHAR_LIT); }
<CHAR_LIT> {char_char}*"'" { yybegin(YYINITIAL); return CHAR_LITERAL; } <CHAR_LIT> {char_char}*"'" { yybegin(YYINITIAL); return CHAR_LITERAL; }
<CHAR_LIT> <<EOF>> { yybegin(YYINITIAL); return BAD_SQUOT; } <CHAR_LIT> <<EOF>> { yybegin(YYINITIAL); return BAD_SQUOT; }
<CHAR_LIT> [^] { yypushback(1); yybegin(UNT_SQUOT); } <CHAR_LIT> [^] { yypushback(1); yybegin(UNT_SQUOT); }
<YYINITIAL> {FLOAT} { return FLOAT; }
<YYINITIAL> {INTEGER} { return INTEGER; }
<YYINITIAL> "\"" { yybegin(STR_LIT); } <YYINITIAL> "\"" { yybegin(STR_LIT); }
<STR_LIT> {string_char}*"\"" { yybegin(YYINITIAL); return STRING_LITERAL_SINGLE; } <STR_LIT> {string_char}*"\"" { yybegin(YYINITIAL); return STRING_LITERAL_SINGLE; }
<STR_LIT> <<EOF>> { yybegin(YYINITIAL); return BAD_DQUOT; } <STR_LIT> <<EOF>> { yybegin(YYINITIAL); return BAD_DQUOT; }
<STR_LIT> [^] { yypushback(1); yybegin(UNT_DQUOT); } <STR_LIT> [^] { yypushback(1); yybegin(UNT_DQUOT); }
<YYINITIAL> "\\\\" { yybegin(STR_MULT_LINE); } <YYINITIAL> "\\\\" { yybegin(STR_MULT_LINE); }
<STR_MULT_LINE> {all_nl_wrap} "\\\\" { } <STR_MULT_LINE> {all_no_nl} { }
<STR_MULT_LINE> {all_no_nl} { } <STR_MULT_LINE> {nl_wrap} "\\\\" { }
<STR_MULT_LINE> \n { yybegin(YYINITIAL); return STRING_LITERAL_MULTI; } <STR_MULT_LINE> {LF} { yybegin(YYINITIAL); return STRING_LITERAL_MULTI; }
<STR_MULT_LINE> <<EOF>> { yybegin(YYINITIAL); return STRING_LITERAL_MULTI; } <STR_MULT_LINE> <<EOF>> { yybegin(YYINITIAL); return STRING_LITERAL_MULTI; }
//Numbers
<YYINITIAL> {FLOAT} { return FLOAT; }
<YYINITIAL> {INTEGER} { return INTEGER; }
//Identifiers
<YYINITIAL> {IDENTIFIER_PLAIN} { return IDENTIFIER; } <YYINITIAL> {IDENTIFIER_PLAIN} { return IDENTIFIER; }
<YYINITIAL> "@\"" { yybegin(ID_QUOT); } <YYINITIAL> "@\"" { yybegin(ID_QUOT); }
<ID_QUOT> {string_char}*"\"" { yybegin(YYINITIAL); return IDENTIFIER; } <ID_QUOT> {string_char}*"\"" { yybegin(YYINITIAL); return IDENTIFIER; }
@ -253,13 +267,17 @@ BUILTINIDENTIFIER="@"[A-Za-z_][A-Za-z0-9_]*
<YYINITIAL> {BUILTINIDENTIFIER} { return BUILTINIDENTIFIER; } <YYINITIAL> {BUILTINIDENTIFIER} { return BUILTINIDENTIFIER; }
//Error handling
<UNT_SQUOT> <<EOF>> { yybegin(YYINITIAL); return BAD_SQUOT; } <UNT_SQUOT> <<EOF>> { yybegin(YYINITIAL); return BAD_SQUOT; }
<UNT_SQUOT> {CRLF} { yybegin(YYINITIAL); return BAD_SQUOT; } <UNT_SQUOT> {LF} { yybegin(YYINITIAL); return BAD_SQUOT; }
<UNT_SQUOT> {all_no_nl} { } <UNT_SQUOT> {all_no_nl} { }
<UNT_DQUOT> <<EOF>> { yybegin(YYINITIAL); return BAD_DQUOT; } <UNT_DQUOT> <<EOF>> { yybegin(YYINITIAL); return BAD_DQUOT; }
<UNT_DQUOT> {CRLF} { yybegin(YYINITIAL); return BAD_DQUOT; } <UNT_DQUOT> {LF} { yybegin(YYINITIAL); return BAD_DQUOT; }
<UNT_DQUOT> {all_no_nl} { } <UNT_DQUOT> {all_no_nl} { }
//Misc
<YYINITIAL> {WHITE_SPACE} { return WHITE_SPACE; } <YYINITIAL> {WHITE_SPACE} { return WHITE_SPACE; }
[^] { return BAD_CHARACTER; } [^] { return BAD_CHARACTER; }

View file

@ -36,8 +36,10 @@ import static com.falsepattern.zigbrains.zon.psi.ZonTypes.*;
%type IElementType %type IElementType
%unicode %unicode
CRLF=\R WHITE_SPACE=\s+
WHITE_SPACE=[\s]+
// visual studio parity
LF=\r\n?|[\n\u0085\u2028\u2029]
bin=[01] bin=[01]
bin_="_"? {bin} bin_="_"? {bin}
@ -54,13 +56,13 @@ dec_int={dec} {dec_}*
hex_int={hex} {hex_}* hex_int={hex} {hex_}*
char_char= \\ . char_char= \\ .
| [^\'\n] | [^\'\r\n\u0085\u2028\u2029]
string_char= \\ . string_char= \\ .
| [^\"\n] | [^\"\r\n\u0085\u2028\u2029]
all_nl_wrap=[^\n]* [ \n]* nl_wrap={LF} (\s|{LF})*
all_no_nl=[^\n]+ all_no_nl=[^\r\n\u0085\u2028\u2029]+
FLOAT= "0x" {hex_int} "." {hex_int} ([pP] [-+]? {dec_int})? FLOAT= "0x" {hex_int} "." {hex_int} ([pP] [-+]? {dec_int})?
@ -83,16 +85,16 @@ IDENTIFIER_PLAIN=[A-Za-z_][A-Za-z0-9_]*
%state UNT_SQUOT %state UNT_SQUOT
%state UNT_DQUOT %state UNT_DQUOT
%state LINE_CMT %state CMT_LINE
%% %%
//Comments //Comments
<YYINITIAL> "//" { yybegin(LINE_CMT); } <YYINITIAL> "//" { yybegin(CMT_LINE); }
<LINE_CMT> {all_nl_wrap} "//" { } <CMT_LINE> {all_no_nl} { }
<LINE_CMT> {all_no_nl} { } <CMT_LINE> {nl_wrap} "//" { }
<LINE_CMT> \n { yybegin(YYINITIAL); return LINE_COMMENT; } <CMT_LINE> \R { yybegin(YYINITIAL); return LINE_COMMENT; }
<LINE_CMT> <<EOF>> { yybegin(YYINITIAL); return LINE_COMMENT; } <CMT_LINE> <<EOF>> { yybegin(YYINITIAL); return LINE_COMMENT; }
//Symbols //Symbols
@ -123,9 +125,9 @@ IDENTIFIER_PLAIN=[A-Za-z_][A-Za-z0-9_]*
<STR_LIT> [^] { yypushback(1); yybegin(UNT_DQUOT); } <STR_LIT> [^] { yypushback(1); yybegin(UNT_DQUOT); }
<YYINITIAL> "\\\\" { yybegin(STR_MULT_LINE); } <YYINITIAL> "\\\\" { yybegin(STR_MULT_LINE); }
<STR_MULT_LINE> {all_nl_wrap} "\\\\" { }
<STR_MULT_LINE> {all_no_nl} { } <STR_MULT_LINE> {all_no_nl} { }
<STR_MULT_LINE> \n { yybegin(YYINITIAL); return STRING_LITERAL_MULTI; } <STR_MULT_LINE> {nl_wrap} "\\\\" { }
<STR_MULT_LINE> {LF} { yybegin(YYINITIAL); return STRING_LITERAL_MULTI; }
<STR_MULT_LINE> <<EOF>> { yybegin(YYINITIAL); return STRING_LITERAL_MULTI; } <STR_MULT_LINE> <<EOF>> { yybegin(YYINITIAL); return STRING_LITERAL_MULTI; }
//Numbers //Numbers
@ -144,10 +146,10 @@ IDENTIFIER_PLAIN=[A-Za-z_][A-Za-z0-9_]*
//Error handling //Error handling
<UNT_SQUOT> <<EOF>> { yybegin(YYINITIAL); return BAD_SQUOT; } <UNT_SQUOT> <<EOF>> { yybegin(YYINITIAL); return BAD_SQUOT; }
<UNT_SQUOT> {CRLF} { yybegin(YYINITIAL); return BAD_SQUOT; } <UNT_SQUOT> {LF} { yybegin(YYINITIAL); return BAD_SQUOT; }
<UNT_SQUOT> {all_no_nl} { } <UNT_SQUOT> {all_no_nl} { }
<UNT_DQUOT> <<EOF>> { yybegin(YYINITIAL); return BAD_DQUOT; } <UNT_DQUOT> <<EOF>> { yybegin(YYINITIAL); return BAD_DQUOT; }
<UNT_DQUOT> {CRLF} { yybegin(YYINITIAL); return BAD_DQUOT; } <UNT_DQUOT> {LF} { yybegin(YYINITIAL); return BAD_DQUOT; }
<UNT_DQUOT> {all_no_nl} { } <UNT_DQUOT> {all_no_nl} { }
//Misc //Misc

View file

@ -1,7 +1,7 @@
pluginName=ZigBrains pluginName=ZigBrains
pluginRepositoryUrl=https://github.com/FalsePattern/ZigBrains pluginRepositoryUrl=https://github.com/FalsePattern/ZigBrains
pluginVersion=23.0.1 pluginVersion=23.0.2
pluginSinceBuild=241 pluginSinceBuild=241
pluginUntilBuild=241.* pluginUntilBuild=241.*

39
push.sh Executable file
View file

@ -0,0 +1,39 @@
#!/bin/sh
#
# This file is part of ZigBrains.
#
# Copyright (C) 2023-2025 FalsePattern
# All Rights Reserved
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# ZigBrains is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, only version 3 of the License.
#
# ZigBrains is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with ZigBrains. If not, see <https://www.gnu.org/licenses/>.
#
set -e
declare -a branches=("dev" "master" "242" "241")
die () {
echo >&2 "$@"
exit 1
}
[ "$#" -eq 1 ] || die "1 argument required, $# provided"
for i in "${branches[@]}"
do
echo "Pushing branch $i"
git push "$1" "$i"
done