intersystems / language-server

Repository for the VS Code Language Server
https://marketplace.visualstudio.com/items?itemName=intersystems.language-server
Other
16 stars 6 forks source link

Spurious "Routine does not exist" problems being raised #312

Closed a-boertien closed 3 months ago

a-boertien commented 3 months ago

Spurious problems are raised in the Problems console when making calls to some internal IRIS routines/subroutines, particularly those utilities that only exist in the namespace in INT or OBJ form.

For example: set x = $$QuoteCSP^%cspQuote(...) Raises:

Routine '%cspQuote' does not exist in namespace 'XYZ'.

Other examples: $$GetIO^%NLS() $$find^%qarmac(...)

Checking the existence of these via ^%RD shows they only exist in compiled/object form, e.g.:

-- .OBJ -- %qarmac

(These utilities might not be widely supported, but in some cases they have not been replaced by officially supported alternatives.)

The Diagnostics: Routines option can be disabled, but I'd much prefer to leave it enabled and be alerted of legitimate issues with missing routines.

Perhaps in the case of calling internal IRIS routines (with "%" prefix), additional logic could be added to check for INT/OBJ forms.

isc-bsaviano commented 3 months ago

Thanks for reporting this @a-boertien. I think I have a fix and I'd like to give you a vsix to test it with before I submit it. What OS and chip do you use?

a-boertien commented 3 months ago

No worries Windows 11 x64 (Intel)