CodeTools 1.5 is released.

Here are the bullet points:

CodeParser

Unsafe input will now give Missing[“UnsafeCharacterEncoding”] instead of attempting to be repaired.

Unsafe input is:

  • Incomplete UTF-8 sequences
  • Stray surrogates
  • BOM

In 13.1, @@@ is parsed as System`MapApply

Fixes: 418240, 420623

CodeInspector

Lots of nice UI fixes and speedups.

Scan Associations that may not only contain Rules

e.g. <| a -> 1, a -> 2, Nothing |>

implement 419700: scan session symbols based on file format

scan For loops

Warn about Confirm with no surrounding Enclose

Warn about a ~~ b c

Warn about MatchQ["a", "a" ~~ _]

Fixes: 412559, 412965, 418552, 418799

CodeFormatter

Lots of nice UI fixes and speedups.

Treat a // b // c as single InfixSlashSlash node and format as:

a //
b //
c

https://github.com/WolframResearch/codeformatter/issues/2

Implement 419551: special formatting for LibraryFunction

Fixes: 402825, 416665, 417300, 417935, 418025, 418228, 419285, 420185

LSPServer

Add Hierarchical Document Symbol support (outlines)

A lot of work on making server diagnostics work on older and slower machines

Add ProcessDirectory option to RunServerDiagnostic

Fixes: https://github.com/WolframResearch/LSPServer/issues/1

Fix race condition with stdio error being checked before all previous traffic has been processed

Instrumentation

Fixes: 418701

Sublime-WolframLanguage

Added support for opening notebooks in the FE

Fixes:

Fix logic for resolving kernel paths

Should try new versions as well as older versions

VSCode-Wolfram

Fixes:

Fix logic for resolving kernel paths

Should try new versions as well as older versions

The paclets should update automatically, but you can get the latest versions of the paclets by evaluating:

PacletInstall["CodeParser"]
PacletInstall["CodeInspector"]
PacletInstall["CodeFormatter"]
PacletInstall["LSPServer"]
PacletInstall["Instrumentation"]

You should see 1.5 versions for everything.

The VSCode extension and Sublime package should also update automatically.

Check out the CHANGELOGs for the various repos:

https://github.com/WolframResearch/codeparser/blob/master/CHANGELOG.md

https://github.com/WolframResearch/codeinspector/blob/master/CHANGELOG.md

https://github.com/WolframResearch/codeformatter/blob/master/CHANGELOG.md

https://github.com/WolframResearch/LSPServer/blob/master/CHANGELOG.md

https://github.com/WolframResearch/Sublime-WolframLanguage/blob/master/CHANGELOG.md

https://github.com/WolframResearch/vscode-wolfram/blob/master/CHANGELOG.md

Updated: