You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,23 @@
1
1
# Change Log
2
2
3
+
## [1.0.6] 13-Nov-2020
4
+
- Target current class when opening documentation from Server Actions quickpick, launched by click on ObjectScript panel in status bar (#490)
5
+
- Improve code snippets (#493)
6
+
- Update README to state need for manual download and install of beta VSIX in order to use proposed APIs (#478)
7
+
- Make server-side search of isfs folder (proposed API) work even when folder isn't first root in workspace (#495)
8
+
- Fix status bar panel issues that affected Docker targets (#498)
9
+
- Resolve failure to prompt for password (1.0.5 regression) (#503)
10
+
- Exclude Studio project documents (.prj) from isfs tree (#501)
11
+
- Fix variable tree cascade that occurred when value was edited during debugging (#505)
12
+
- Show clickable url launching graphical editor for BPL and DTL documents opened from isfs folder (#508)
13
+
- To show .bpl and .dtl files, add `filter=*` to isfs folder's `uri` property in your `XXX.code-workspace` file.
14
+
- Alternatively, use `View Other` from context menu of the corresponding class.
15
+
- Display supported image files correctly when opened from isfs web application folder (#394)
16
+
- Prevent import from overwriting class that is in [deployed mode](https://docs.intersystems.com/iris20181/csp/docbook/Doc.View.cls?KEY=GOBJ_classes#GOBJ_deploy_classes) (#382)
17
+
- Respect `pathPrefix` property of an `intersystems.servers` connection definition in more places:
18
+
- debugger connections
19
+
- urls on Server Actions menu
20
+
3
21
## [1.0.5] 5-Nov-2020
4
22
- Defer to Language Server 1.0.5+ for folding range information (#473)
5
23
- Add `objectscript.overwriteServerChanges` setting to permit unconditional import from local file (#464)
Copy file name to clipboardExpand all lines: README.md
+94-59Lines changed: 94 additions & 59 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,9 @@
10
10
11
11
[InterSystems®](http://www.intersystems.com) ObjectScript language support for Visual Studio Code, from the [InterSystems Developer Community](https://community.intersystems.com/).
12
12
13
-
Documentation on [GitHub Pages](https://intersystems-community.github.io/vscode-objectscript/).
13
+
- Documentation on [GitHub Pages](https://intersystems-community.github.io/vscode-objectscript/).
14
+
15
+
- Guidance on [reporting issues](https://community.intersystems.com/post/using-intersystems-objectscript-vs-code-how-report-issues).
14
16
15
17
## Features
16
18
@@ -19,19 +21,25 @@ Documentation on [GitHub Pages](https://intersystems-community.github.io/vscode-
- Intellisense support for commands, system functions, and class members.
22
-
- Export existing server sources to the working directory: open Command Palette (<kbd>F1</kbd> or <kbd>Cmd</kbd>/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>), start typing 'ObjectScript', choose `ObjectScript: Export Sources`, press <kbd>Enter</kbd>.
23
-
- Save and compile a class: press <kbd>Ctrl</kbd>+<kbd>F7</kbd> (<kbd>⌘</kbd>+<kbd>F7</kbd>) or select `ObjectScript: Import and Compile Current File` from Command Palette.
24
-
- Direct access to edit or view server code in VS Code Explorer via `isfs` and `isfs-readonly` FileSystemProviders (e.g. using a [multi-root workspace](https://code.visualstudio.com/docs/editor/multi-root-workspaces)).
25
-
- Server Explorer view (ObjectScript: Explorer) with ability to export items to working directory.
24
+
- Export of existing server sources into a working folder:
25
+
- open Command Palette (<kbd>F1</kbd> or <kbd>⌘</kbd>/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>)
- or, select `ObjectScript: Import and Compile Current File` from Command Palette
32
+
- Direct access to edit or view server code in the VS Code Explorer via `isfs` and `isfs-readonly` FileSystemProviders (e.g. using a [multi-root workspace](https://code.visualstudio.com/docs/editor/multi-root-workspaces)). Server-side source control is respected.
33
+
- Server Explorer view (ObjectScript: Explorer) with ability to export items to your working folder.
Install [Visual Studio Code](https://code.visualstudio.com/) first.
32
40
33
-
Open VS Code. Go to Extensions view (<kbd>Cmd</kbd>/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>X</kbd>) and search for "vscode-objectscript" and install it.
34
-
Or install from the ObjectScript extension page on [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=intersystems-community.vscode-objectscript)
41
+
Open VS Code. Go to Extensions view (<kbd>⌘</kbd>/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>X</kbd>), search for "vscode-objectscript" and install it.
42
+
Or install direct from the ObjectScript extension page on [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=intersystems-community.vscode-objectscript).
@@ -40,35 +48,77 @@ Or install from the ObjectScript extension page on [Visual Studio Marketplace](h
40
48
This extension is able to to take advantage of some VS Code APIs that have not yet been finalized.
41
49
42
50
The additional features (and the APIs used) are:
43
-
- Server-side [searching across files](https://code.visualstudio.com/docs/editor/codebasics#_search-across-files) being accessed using isfs (TextSearchProvider)
44
-
-[Quick Open](https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_quick-open) of isfs files (FileSearchProvider).
- Server-side [searching across files](https://code.visualstudio.com/docs/editor/codebasics#_search-across-files) being accessed using isfs (_TextSearchProvider_)
52
+
-[Quick Open](https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_quick-open) of isfs files (_FileSearchProvider_).
1. Marketplace does not allow publication of extensions that use proposed APIs. Download and install a beta version from GitHub.
57
+
1.Download and install a beta version from GitHub. This is necessary because Marketplace does not allow publication of extensions that use proposed APIs.
50
58
- Go to https://github.com/intersystems-community/vscode-objectscript/releases
51
-
- Locate the beta immediately above the release you installed from Marketplace. For instance, if you installed `1.0.5`, look for `1.0.6-beta.1`. This will be functionally identical to the Marketplace version apart from being able to use proposed APIs.
52
-
- Download the VSIX file (for example `vscode-objectscript-1.0.6-beta.1.vsix`) and install it. One way to install a VSIX is to drag it from your download folder and drop it onto the list of extensions in the Extensions view of VS Code.
59
+
- Locate the beta immediately above the release you installed from Marketplace. For instance, if you installed `1.0.6`, look for `1.0.7-beta.1`. This will be functionally identical to the Marketplace version apart from being able to use proposed APIs.
60
+
- Download the VSIX file (for example `vscode-objectscript-1.0.7-beta.1.vsix`) and install it. One way to install a VSIX is to drag it from your download folder and drop it onto the list of extensions in the Extensions view of VS Code.
53
61
54
62
2. From [Command Palette](https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_command-palette) choose `Preferences: Configure Runtime Arguments`.
55
63
3. In the argv.json file that opens, add this line:
5. Verify that the ObjectScript channel of the Output panel reports this:
61
69
```
62
70
intersystems-community.vscode-objectscript version X.Y.Z-beta.1 activating with proposed APIs available.
63
71
```
64
72
65
-
After a subsequent update of the extension from Marketplace you will need to download and install the new `-beta.1` VSIX. None of the other steps above will need to be repeated.
73
+
After a subsequent update of the extension from Marketplace you will only have to download and install the new `vscode-objectscript-X.Y.Z-beta.1` VSIX. None of the other steps above are needed again.
66
74
67
-
## Configure Connection
75
+
## Configure a Connection
68
76
69
77
To be able to use many features you first need to configure the connection to your IRIS/Caché/Ensemble server(s) in your [VS Code settings](https://code.visualstudio.com/docs/getstarted/settings). If you are unfamiliar with how settings work and how they are edited, use that link.
70
78
71
-
We recommend you define server connections in the `intersystems.servers` object whose structure is defined by the [InterSystems Server Manager](https://marketplace.visualstudio.com/items?itemName=intersystems-community.servermanager) helper extension. Install this extension and consult its README about commands for easy setup of connections, plus assistance when editing the JSON definition. For example:
79
+
We recommend you define server connections in the `intersystems.servers` object whose structure is defined by the [InterSystems Server Manager](https://marketplace.visualstudio.com/items?itemName=intersystems-community.servermanager) helper extension.
80
+
81
+
Install that extension and consult its documentation about commands for easy setup of connections, plus assistance when editing the JSON definition directly.
82
+
83
+
For more tips about the `intersystems.servers` object, see the [Notes](#Notes) section below.
84
+
85
+
### Client-side Editing
86
+
87
+
A simple workspace -- a local working folder in which you edit InterSystems source files and manage them using client-side source control (e.g. Git) -- will use the `objectscript.conn` settings object to **import** locally-edited code into a namespace on a server, compile it there and run/debug it, and also for initial **export** of an existing codebase (optional). This settings object is usually defined in Workspace Settings, for example in the `.vscode/settings.json` file of your working folder.
88
+
89
+
A quick way to add `objectscript.conn` to a new working folder is:
90
+
91
+
1. Open the folder in VS Code.
92
+
2. Use the InterSystems icon on the activity bar to switch to **ObjectScript Explorer** view.
93
+
3. Click the 'Choose Server and Namespace' button.
94
+
4. Respond to the sequence of quickpicks. You can also define a new server at the start of this sequence by using the '+' button.
95
+
96
+
For more about `objectscript.conn` see the [Notes](#Notes) section below.
97
+
98
+
### Server-side Editing
99
+
100
+
To edit code directly in one or more namespaces on one or more servers (local or remote) we recommend creating a workspace definition file (for example _XYZ.code-workspace_) where you specify one or more root folders that directly access namespaces via the `isfs` or `isfs-readonly` URI schemes. The only difference between these two schemes is that any file opened from a folder using the `isfs-readonly` scheme will be set as read-only in VS Code and thus protected against being changed.
101
+
102
+
1. Start VS Code.
103
+
2. If your last-used folder opens, use 'Close Folder' on the 'File' menu ('Code' menu on macOS). Or if what opened was your last-used workspace, use 'Close Workspace'.
104
+
3. On VS Code's Explorer view (<kbd>⌘</kbd>/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>E</kbd>), click the 'Choose Server and Namespace' button. Respond to the sequence of quickpicks. You can also define a new server connection during this process.
105
+
4. Use 'Save Workspace As...' to store your workspace definition in a file with a `.code-workspace` extension.
106
+
107
+
For more about `isfs` and `isfs-readonly` folder specifications see the [Notes](#Notes) section below.
108
+
109
+
## Notes
110
+
111
+
- Connection-related output appears in the "Output" view while switched to the "ObjectScript" channel using the drop-down menu on the view titlebar.
112
+
113
+
- For Caché/IRIS instance with maximum security level, add `%Development` role for `/api/atelier/` web-application ([read more](https://community.intersystems.com/post/using-atelier-rest-api)).
114
+
115
+
- If you are getting `ERROR # 5540: SQLCODE: -99 Message: User xxx is not privileged for the operation` when you try to get or refresh class/routine/include- lists, grant your username (or a SQL role you hold) execute permission for the following SQL Procedure in the target namespace.
116
+
```SQL
117
+
GRANT EXECUTE ON %Library.RoutineMgr_StudioOpenDialog TO xxx
118
+
```
119
+
### More about `intersystems.servers`
120
+
This settings object is useful for both client-side and server-side development.
121
+
- An example server definition named 'local':
72
122
73
123
```json
74
124
"intersystems.servers": {
@@ -84,19 +134,17 @@ We recommend you define server connections in the `intersystems.servers` object
84
134
}
85
135
```
86
136
87
-
By defining connections in your User Settings they become available for use by any workspace you open in VS Code. Alternatively, define them in workspace-specific settings.
137
+
-By defining connections in your User Settings they become available for use by any workspace you open in VS Code. Alternatively, define them in workspace-specific settings.
88
138
89
-
Setting the `username` property is optional. If omitted it will be prompted for when connecting, then cached for the session.
139
+
-Setting the `username` property is optional. If omitted it will be prompted for when connecting, then cached for the session.
90
140
91
-
Setting a plaintext value for the `password` property is **not** recommended. Instead, run the `InterSystems Server Manager: Store Password in Keychain` command from Command Palette.
92
-
93
-
If no password has been set or stored it will be prompted for when connecting, then cached for the session.
94
-
95
-
### Client-side Editing
141
+
- Setting a plaintext value for the `password` property is **not** recommended. Instead, run the `InterSystems Server Manager: Store Password in Keychain` command from Command Palette.
96
142
97
-
A workspace consisting of a local working directory in which you edit InterSystems source files and manage them using client-side source control (e.g. Git) will use the `objectscript.conn` settings object to access the server for export (compile) and debug, and also for import. This is usually defined in Workspace Settings, for example in the `.vscode/settings.json` file of your working directory.
143
+
- If no password has been set or stored it will be prompted for when connecting, then cached for the session.
98
144
99
-
We recommend that `objectscript.conn` uses its `server` property to point to an entry in `intersystems.servers`. For example:
145
+
### More about `objectscript.conn`
146
+
This settings object is primarily relevant when doing client-side development.
147
+
- We recommend that `objectscript.conn` uses its `server` property to point to an entry in `intersystems.servers`. For example:
100
148
101
149
```json
102
150
"objectscript.conn": {
@@ -106,52 +154,39 @@ We recommend that `objectscript.conn` uses its `server` property to point to an
106
154
}
107
155
```
108
156
109
-
The mandatory `ns` property defines which server namespace you will work with.
157
+
-The mandatory `ns` property defines which server namespace you will work with.
110
158
111
-
When the `server` property is set, any `username` or `password` properties of `objectscript.conn` are ignored. Instead these values come from the `intersystems.servers` entry.
159
+
-When the `server` property is set, any `username` or `password` properties of `objectscript.conn` are ignored. Instead these values come from the `intersystems.servers` entry.
112
160
113
-
### Server-side Editing
114
-
115
-
To edit code directly in one or more namespaces on one or more servers (local or remote) we recommend creating a workspace definition file (for example _XYZ.code-workspace_) where you specify one or more root folders that directly access namespaces via the `isfs` or `isfs-readonly` URI schemes. The only difference between these two schemes is that any file opened from a folder using the `isfs-readonly` scheme will be set as readonly in VS Code and thus protected against changing.
116
-
117
-
1. Start VS Code.
118
-
2. If your last-used folder opens, use 'Close Folder' on the 'File' menu ('Code' menu on macOS). Or if what opened was your last-used workspace, use 'Close Workspace'.
119
-
3. On VS Code's Explorer view, click the 'Choose Server and Namespace' button. Respond to the sequence of quickpicks. You can also define a new server connection during this process.
120
-
4. Use 'Save Workspace As...' to store your workspace definition in a file with a `.code-workspace` extension.
161
+
### More about `isfs` and `isfs-readonly` workspace folders
162
+
Server-side development is best done using `isfs` folders. The read-only variant `isfs-readonly` is also useful when doing client-side development, since it enables server-side searching of your codebase.
121
163
122
-
To access the server-side files of a web application, edit the JSON of your workspace definition. Get there by running the 'Preferences: Open Workspace Settings (JSON)' command. Format your `uri` property like this example for the `/csp/user` web application:
164
+
To modify how your folder behaves, edit the JSON of your workspace definition (_XYZ.code-workspace_ file). Get there by running the 'Preferences: Open Workspace Settings (JSON)' command. Edit your `uri` property.
123
165
166
+
- The `csp` query parameter indicates web application files are to be shown. The uri path optionally specifies which application. The `ns` parameter must specify the same namespace the application is configured to use. In the following example the first folder is for the `/csp/user` web application in the USER namespace of the server named 'local' and the second gives read-only access to all web applications that reside in the %SYS namespace. The second folder also uses the optional `name` property:
124
167
```json
125
168
{
126
-
"uri": "isfs://local/csp/user?csp&ns=USER"
169
+
"uri": "isfs://local/csp/user?ns=USER&csp"
170
+
},
171
+
{
172
+
"name": "local:%SYS web files (read-only)",
173
+
"uri": "isfs-readonly://local/?ns=%SYS&csp"
127
174
}
128
175
```
129
-
The `csp` query parameter indicates web application files are to be shown. The uri path specifies which application. The `ns` parameter must specify the same namespace the application is configured to use.
130
-
131
-
To see only classes in the X.Y package, format the uri like this:
176
+
177
+
- To see only classes in the Xxx.Yyy package, format the uri like this:
132
178
133
179
```json
134
180
{
135
-
"uri": "isfs://local/X/Y?ns=USER&type=cls"
181
+
"uri": "isfs://local/Xxx/Yyy?ns=USER&type=cls"
136
182
}
137
183
```
138
184
139
-
Other query parameters that can be specified:
140
-
-`type=cls` to show only classes, or `type=rtn` to show only routines.
141
-
-`flat=1` to flatten the hierarchy.
142
-
-`generated=1` to show generated items.
143
-
-`filter=filterspec` to use a filter specification formatted in the same way as used in InterSystems Studio's File Open dialog (e.g. `filter=Ensem*.inc`).
144
-
145
-
## Notes
146
-
147
-
Connection-related output appears in the "Output" view while switched to the "ObjectScript" channel using the drop-down menu on the view titlebar.
148
-
149
-
For Caché/IRIS instance with maximum security level, add `%Development` role for `/api/atelier/` web-application ([read more](https://community.intersystems.com/post/using-atelier-rest-api)).
150
-
151
-
If you are getting `ERROR #5540: SQLCODE: -99 Message: User xxx is not privileged for the operation` when you try to get/refresh class/routine/includes lists, grant your username (or a SQL role you hold) execute permission for the following SQL Procedure in the target namespace.
152
-
```SQL
153
-
GRANT EXECUTE ON %Library.RoutineMgr_StudioOpenDialog TO xxx
154
-
```
185
+
- Other query parameters that can be specified include:
186
+
-`type=cls` to show only classes, or `type=rtn` to show only routines.
187
+
-`flat=1` to flatten the hierarchy.
188
+
-`generated=1` to show generated items.
189
+
-`filter=filterspec` to use a filter specification formatted in the same way as used in InterSystems Studio's File Open dialog (e.g. `filter=Ensem*.inc`).
0 commit comments