Skip to content

Seems to be broken on documents with large single comment blocks #206

Description

@CactiChameleon9

LTeX+ doesn't work for me on my larger typst document, but does seem to work on a fresh nearly-empty document.

I can't seem to get it working using ltex-ls-plus from nixpkgs, getting an error like this in the logs on the server's side. Error is triggered when running the "check current document" commmand

[Info  - 12:04:46] Starting ltex-ls...
Jun 12, 2026 10:05:06 AM org.bsplines.ltexls.server.LtexLanguageServer initialize
INFO: ltex-ls 18.6.1 - initializing...
Jun 12, 2026 10:05:06 AM org.bsplines.ltexls.tools.I18n setLocale
INFO: Setting locale to 'en'
Jun 12, 2026 10:05:06 AM org.bsplines.ltexls.server.LtexTextDocumentItem raiseExceptionIfCanceled
FINE: Canceling check due to incoming check request...
Jun 12, 2026 10:05:34 AM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError
SEVERE: Internal error: java.lang.StackOverflowError
java.util.concurrent.CompletionException: java.lang.StackOverflowError
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:649)
	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.StackOverflowError
	at java.base/java.util.regex.Pattern$GroupTail.match(Pattern.java:5000)
	at java.base/java.util.regex.Pattern$BranchConn.match(Pattern.java:4878)
	at java.base/java.util.regex.Pattern$CharProperty.match(Pattern.java:4110)
	at java.base/java.util.regex.Pattern$Branch.match(Pattern.java:4914)
	...

Originally posted by @CactiChameleon9 in #185

I'm not sure what information to provide to help debug this, because I don't have a minimum viable example. Let me know if there's anything I can do from my end.

Metadata

Metadata

Assignees

Labels

1-bug 🐛Issue type: Bug report (something isn't working as expected)2-confirmedIssue status: Confirmed, reproducible bug in LTeX+

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions