texstudio-org/texstudio

brace mismatch with \directlua

開放

#2,859 建立於 2023年1月19日

 (1 則留言) (0 個反應) (0 位負責人)C++ (397 個分叉)auto 404
enhancementhelp wanted

倉庫指標

星標
 (3,516 顆星)
PR 合併指標
 (平均合併 5小時 26分鐘) (30 天內合併 19 個 PR)

描述

Environment

  • TeXstudio: 4.5.1beta4
  • Qt: 6.4.2
  • OS: Windows10
  • TeX distribution: miktex

Expected behavior

The cwl entry for \directlua is \directlua{lua code%definition} with the %definition to prevent normal tex highlighting for the lua code.

Actual behavior

TXS colors the braces for \directlua and similar luatex commands like \latelua differently than it does for other commands with identical cwl specs. It also mismatches the braces even when the braces inside its arg are balanced.

The cwl specs are listed above the command. The \directlua line shows the highlighted mismatched braces, and the \latelua line shows the different coloring and matching. It seems to match the opening brace with the first closing brace it sees, but for some reason this only affects the luatex commands.

It also seems something weird is happening with the keywords "true" and "false" in \directlua, \latelua, etc.

The equals sign is not important, any instance of "true" or "false" will be highlighted in orange (in my settings that's verbatim text).

How to reproduce

\documentclass{article}

\usepackage{luatexbase} % for #include:luatex so \directlua,\latelua,...
\usepackage{pythonimmediate} % for \py

\begin{document}

% \directlua{lua code%definition}
\directlua{fonts.protrusions.setups.goridot = {[0x3002] = { 0, 0.5 },}}
% \latelua{lua code%definition}
\latelua{fonts.protrusions.setups.goridot = {[0x3002] = { 0, 0.5 },}}
% \newcommand{cmd}{def}
\newcommand{\mystring}{fonts.protrusions.setups.goridot = {[0x3002] = { 0, 0.5 },}}
% \fpeval{fp expression%definition}
\fpeval{fonts.protrusions.setups.goridot = {[0x3002] = { 0, 0.5 },}}
% cwl entry \py{python expr%definition}
\py{fonts.protrusions.setups.goridot = {[0x3002] = { 0, 0.5 },}}

\directlua{true/sdfgdf}
\directlua{bla=false}
\directlua{bla=something}
\latelua{bla=true}
\end{document}

貢獻者指南