InterSystems Namespace SearchStudio-style tools for working on InterSystems IRIS code in VS Code, directly on the server:
It works with the server-side ( Requirements
Namespace Search:
|
| You type | It opens |
|---|---|
SetTavla^WBLRSHOWFF |
routine WBLRSHOWFF at label SetTavla |
SetTavla+3^WBLRSHOWFF |
3 lines below that label |
$$call^My.Routine(x) |
$$ and the arguments are ignored |
^WBLRSHOWFF / ^WBLRSHOWFF.int |
the routine at the top, or that exact type |
+12^WBLRSHOWFF |
line 12 of the routine |
##class(My.App.Cls).Method |
the class, at that method |
My.App.Cls.cls |
the class, at the top |
SetTavla / SetTavla+3 |
a label in the current file |
42 |
line 42 of the current file |
With several namespaces open it asks which one to use. The current file's namespace is listed first, so Enter keeps you where you are.
Open Document (Tree / Flat)
Command: InterSystems: Open Document (Tree / Flat) (isfsNamespaceSearch.openDocument).
It has no default shortcut. To put it on Ctrl+Alt+O, add this to your keybindings.json:
{
"key": "ctrl+alt+o",
"command": "isfsNamespaceSearch.openDocument",
"when": "vscode-objectscript.connectActive"
}
It has two views of the namespace's documents:
- Tree: browse package by package, like the InterSystems ObjectScript extension did up to 3.8.2.
- Flat: one filterable list of every document, like 3.8.3 and later.
You can also type a full document name with its extension (e.g. My.App.Cls.cls) in either view and press Enter.
The title-bar buttons show or hide System, Generated and Mapped documents.
Opening several files at once
Click the checklist button in the title bar to turn on checkbox mode:
- Click a file, or press
Ctrl+Enteron the highlighted one, to tick it. Do the same again to untick it. - Ticks are kept when you move between packages and when you switch Tree / Flat, so you can collect files from anywhere.
- VS Code shows a checkbox on every row. Clicking a package or
..goes into it or up, rather than ticking it. - Press Enter (or OK) to open every ticked file, each in its own tab.
- The title shows how many files are ticked. Clicking the button again turns checkbox mode off and clears the ticks.
Keys while the picker is open
| Key | Action |
|---|---|
Ctrl+T (or your open shortcut again) |
Switch Tree / Flat |
Alt+Left |
Up one package |
Backspace (filter empty) |
Up one package |
Ctrl+H |
Back to the namespace root |
Ctrl+Enter (checkbox mode) |
Tick / untick the highlighted file |
These keys only work while this picker is open. Everywhere else they keep their usual VS Code behaviour.
Holding Backspace deletes your filter text and stops at the empty filter, so press it again to go up.
The ← and Home buttons in the title bar do the same as the keys and stay visible however far you scroll.
Switching Flat → Tree starts at the namespace root. Switching Tree → Flat keeps your filter text.
Bookmarks
Works in server-side (isfs) documents.
| Key | Action |
|---|---|
Ctrl+F2 |
Toggle a bookmark on the current line (on every cursor's line, with multiple cursors) |
F2 |
Jump to the next bookmark in this file (wraps around) |
Ctrl+Alt+F2 |
Clear this file's bookmarks |
These keys only apply in isfs documents. Elsewhere F2 is still Rename Symbol.
Bookmarked lines get a yellow marker in the gutter and on the scrollbar.
The ISFS Bookmarks sidebar lists them by namespace → document → bookmark. Each bookmark shows its label and offset
(e.g. SetTavla+3, or the class method it's in) and its line number. Click one to jump there.
The buttons on each row delete one bookmark, clear a document, or clear a whole namespace.
Bookmarks follow the text. Adding or deleting lines above a bookmark moves it with its line, and editing the bookmarked line keeps it. Deleting the bookmarked line removes the bookmark. This only tracks edits made in VS Code. If a document changes elsewhere (in Studio, or on the server), a bookmark can end up on a different line.
Bookmarks are saved per workspace.
No preview tabs for server documents
A single click on an isfs document opens it as a regular tab rather than a preview tab (the one in italics that
the next file replaces). Turn this off with isfsNamespaceSearch.pinIsfsEditors. To get the same behaviour for all
files, use VS Code's own workbench.editor.enablePreview: false instead.
Settings
| Setting | Default | What it does |
|---|---|---|
isfsNamespaceSearch.useServerSideSearch |
true |
Search on the IRIS server (fast). Off = always use the local scan. |
isfsNamespaceSearch.serverSideSearchMinApiVersion |
4 |
Servers below this Atelier API version use the local scan, for complete results. |
isfsNamespaceSearch.serverSearchMaxResults |
5000 |
Maximum matches requested per server-side search (the API's own default is 200). |
isfsNamespaceSearch.allowSelfSignedCert |
false |
Accept a self-signed HTTPS certificate when talking to the server directly. Only for trusted dev servers. |
isfsNamespaceSearch.dirConcurrency |
6 |
Local scan: folder listings run in parallel. |
isfsNamespaceSearch.fileConcurrency |
8 |
Local scan: files read in parallel. |
isfsNamespaceSearch.pauseBetweenReadsMs |
0 |
Local scan: delay before each server read, to go easier on a busy server. |
isfsNamespaceSearch.openDocument.defaultMode |
last |
Which view Open Document starts in: last, tree or flat. |
isfsNamespaceSearch.pinIsfsEditors |
true |
Open isfs documents as regular tabs, not preview tabs. |
Credentials
This extension never asks for a password and never shows VS Code's "wants to sign in" dialog.
Open Document lists documents through your isfs namespace folder, using the connection the InterSystems extension
already made when you added the namespace. It needs no password of its own.
The flat list has to go through the folder one package at a time, so on a big namespace it fills in over a few seconds.
It's then kept for 3 minutes; the Reload button in the title bar refreshes it.
Server-side search, and a faster Open Document flat list, need to talk to the server directly. They use a password when one is available without asking:
settings.json(intersystems.servers), or whatever the InterSystems ObjectScript extension provides. On 3.0.x that includes the password you typed for Add Server Namespace to Workspace.- Server Manager's saved login, if you've allowed this extension to use it: Accounts menu → InterSystems Server Credentials → your login → Manage Trusted Extensions → tick InterSystems Namespace Search.
Without one, search uses the slower local scan and Open Document uses the isfs folder. Both still work.
InterSystems: Forget Stored Password... removes a password saved by versions 1.4.1 and 1.4.2.
Credits
Open Document's list queries and name validation are adapted from the
InterSystems ObjectScript extension (MIT).
See THIRD_PARTY_NOTICES.md.