Skip to content

Releases: interactive-data-language/vscode-idl

v3.1.3

27 Jul 21:46

Choose a tag to compare

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

26 Jul 05:44

Choose a tag to compare

Attempt to fix likely hang when detecting node.js to use for the language server

v3.1.1

25 Jul 21:35

Choose a tag to compare

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

24 Jul 22:22

Choose a tag to compare

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

18 Jul 22:09

Choose a tag to compare

3.1.0-preview2 Pre-release
Pre-release

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

18 Jul 16:41

Choose a tag to compare

3.1.0-preview1 Pre-release
Pre-release

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

17 Jul 21:32

Choose a tag to compare

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, 42 and the text 42). 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 .idl folder in your home location with a vscode subdirectory)

    • 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

14 Jul 19:15

Choose a tag to compare

v3.0.6-preview Pre-release
Pre-release

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, 42 and the text 42). 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

08 Jul 18:20

Choose a tag to compare

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

07 Jul 14:44

Choose a tag to compare

Expose ability to set environment variables for the IDL process that appears in the debug console