Releases: interactive-data-language/vscode-idl
v3.1.3
Fix bug where, if you had a function or procedure without a name, parsing would occasionally break and cause a bad state for the language server
Change order of some language server startup events
Indicate we are done parsing before we sync problems with the VSCode UI
Add in some manual cleanup checks for main language server process to reduce memory growth over time
Every 5 minutes, the language server runs garbage collection in an attempt to reduce memory usage and logs approximate memory used in mb to help logging/track over time
Update bundled documentation for ENVI and IDL routines to look nicer and give better visual experience for routines with keywords
Change the way we check for node.js to try and work around a hang on extension start
v3.1.2
Attempt to fix likely hang when detecting node.js to use for the language server
v3.1.1
This release has some potential fixes for performance issues with complex paths on startup. It also adds some additional output on language server startup to help understand where slowness is coming from.
Fix likely bug with docs parsing without full parse language server setting
Tweak file discovery process to use a single glob pattern and search once instead of 5+ times for each kind of file to try and address performance issues
Add more debug information on language server startup to tell us how long it takes to do each part of workspace indexing, including discovering files
In case some of our messages with worker threads are slowing down overall performance, add some optimizations for message sending to only serialize messages a single time
v3.1.0
This releases contains various performance improvements and bug fixes to help resolve issues for some power users.
Changes
Fixed an issue where garbage collection was not turning on and caused out-of-memory errors which led to language server crashes
Added a cache to reduce memory usage for worker threads (large workspaces with 300+ files should use about 50% less RAM). Coincidentally this also improved performance as well.
On startup, a new log statement prints to show the state of garbage collection: idl-lsp info Garbage collection enabled: true
Improved the on-enter commands that automatically continue comment blocks as you type within them. They were close, but not quite there are some rules conflicted with one another so they didn't work right.
Fixed a major performance issue when doing a quick parse of PRO code. For almost 8000 files on a developer machine, we went from 13 seconds down to 3 with a parse rate of 650k lines/second!
For quick parsing, we now also extract docs for your code to give a better hover help and auto-complete user experience with a low impact to performance.
Fixed a bug where the IDL icon was pointing to the wrong file for light themes
Added a new button to the IDL sidebar which allows you to easily specify the location of IDL without needing to rummage through the command palette
Fixed some import bugs if you have an older version of node.js on your path where "performance" was undefined.
3.1.0-preview2
Further improve non-full-parse parsing to reduce time and memory usage. Here is before/after performance information:
const before = {
lines: 2252881,
app_platform: 'win32',
app_arch: 'x64',
app_cpus: 20,
app_ram: 32,
app_ram_used: 2.5,
num_workers: 6,
parse_time: 13.49,
parse_rate: 167015,
num_pro: 7816,
num_save: 830,
num_idl_task: 15,
num_envi_task: 0,
num_idl_json: 0,
};
const after = {
lines: 2252881,
app_platform: 'win32',
app_arch: 'x64',
app_cpus: 20,
app_ram: 32,
app_ram_used: 1.75,
num_workers: 6,
parse_time: 7.86,
parse_rate: 286567,
num_pro: 7816,
num_save: 830,
num_idl_task: 15,
num_envi_task: 0,
num_idl_json: 0,
};3.1.0-preview1
This preview has several potential fixes for reduced memory usage and is being released as a preview before officially coming out in the next few weeks.
Fixed an issue where garbage collection was not turning on and caused out-of-memory errors which led to language server crashes
Added a cache to reduce memory usage for worker threads (large workspaces with 300+ files should use about 50% less RAM). Coincidentally this also improved performance as well.
On startup, a new log statement prints to show the state of garbage collection: idl-lsp info Garbage collection enabled: true
v3.0.6
3.0.6 - July 2023
Improved message when language server crashes and a button that opens documentation for workarounds for the memory problem
Fixed a problem where we don't properly detect node.js on non-Windows platforms
Fixed a problem where the docs file wasn't being included
Add new preferences for tracking session history! This includes several new features:
-
A new output channel that captures the input and output from your IDL sessions (i.e.
print, 42and the text42). This output channel is called "IDL: Session History" -
A system to also write all input and output to a file on disk. You can control:
-
If we write a file on disk or not
-
The folder (default value is
${.idl}which is the path to your.idlfolder in your home location with avscodesubdirectory) -
The name of the file (the extension of ".idllog" gives syntax highlighting when open for improved readability)
-
Size limit for the file which is truncated on start of the language server if it exceeds our limit.
-
If we always clear (truncate) the contents of the file when IDL starts
-
Add basic variable substitution for the environment preference and the folder for tracking history.
- This is added as a new link in the docs that is included with the extension
v3.0.6-preview
Add new preferences for tracking session history! This includes several new features:
-
A new output channel that captures the input and output from your IDL sessions (i.e.
print, 42and the text42). This output channel is called "IDL: Session History" -
A system to also write all input and output to a file on disk. You can control:
-
If we write a file on disk or not
-
The folder
-
The name of the file
-
Size limit for the file
-
If we always clear (truncate) the contents of the file when IDL starts
-
Add basic variable substitution for the environment preference and the folder for tracking history.
- This is added as a new link in the docs that is included with the extension
v3.0.4
When compile_opt is not present with idl2, idl3, or strictarr, delineate between function calls and indexing with parentheses. It won't parse 100% correctly, but it allows us to identify and fix parentheses.
-
New error code (105 with alias "illegal-var-index")
-
Automatically gets fixed when formatting if you have auto-fix enabled (true by default)
v3.0.3
Expose ability to set environment variables for the IDL process that appears in the debug console