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
+49Lines changed: 49 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,54 @@
1
1
# Change Log
2
2
3
+
## [0.8.7]
4
+
- Use `intersystems.servers` object for more flexible connection definitions.
5
+
- Recommend [intersystems-community.servermanager](https://marketplace.visualstudio.com/items?itemName=intersystems-community.servermanager) extension for management of `intersystems.servers` definitions.
6
+
- Support server-side source control and other server-side commands.
7
+
- Add `isfs-readonly` scheme to give readonly access to server code.
8
+
- Improve class snippets and implement snippets for routines.
9
+
- Be less strict about spaces in header of routines.
10
+
- Handle `objectscript.format.commandCase` set to invalid value.
11
+
- Make command titles conform to VS Code style.
12
+
- Support compilation for more file types.
13
+
- Display CSP and Other files in ObjectScript Explorer.
14
+
- Add option to show system files in ObjectScript Explorer.
15
+
- Make `View Another Namespace...` command in ObjectScript Explorer only apply to the selected server.
16
+
- Fix several issues with terminal in Docker.
17
+
- Fix some debugging issues.
18
+
- Respect original EndOfLine in file when loading changes from server.
19
+
- Alert on import error.
20
+
- Resolve diagnostic issue in html style block.
21
+
- Added diagnostic to warn if non-latin characters found in class element.
22
+
- Webpack extension to reduce size.
23
+
24
+
## [0.8.6] - 2020-04-23
25
+
- Support $ETRAP system variable.
26
+
- Fix opening Docker terminal.
27
+
28
+
## [0.8.5] - 2020-04-20
29
+
- Fix errors in embedded JS code.
30
+
- Fix diagnostic error for values in quotes.
31
+
32
+
## [0.8.3] - 2020-03-23
33
+
- Support for custom address in isfs.
34
+
- Multi select in explorer view for mass export.
35
+
36
+
## [0.8.2] - 2020-03-04
37
+
- Show current place (label+pos^routine) in status bar for INT code.
38
+
- Fix syntax highlighting.
39
+
- Support for ${namespace} in links.
40
+
41
+
## [0.8.1] - 2020-02-06
42
+
- Some small fixes in filtering for isfs.
43
+
- Fixed connection info in Explorer.
44
+
- Extra links for server.
45
+
- Support creating classes, routines, webapp files on isfs.
46
+
- Some fixes in formatting provider.
47
+
- Option to suppress error messages.
48
+
- Ignore case for script and sql in diagnostics.
49
+
- Option to disable `debug this method` action.
50
+
- Password prompt, live connection status.
51
+
3
52
## [0.8.0]
4
53
- "Debug this ClassMethod" feature added, to quickly debug any classmethod in a class
- Intellisense support for commands, system functions, and class members.
25
19
- Export existing sources to the working directory: press Cmd/Ctrl+Shift+P, type 'ObjectScript', press Enter.
26
-
- Save and compile a class: press <kbd>Ctrl</kbd>+<kbd>F7</kbd> (<kbd>⌘</kbd>+<kbd>F7</kbd>) or select "ObjectScript: Save and compile" from <kbd>Cmd</kbd>/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> menu.
27
-
-Server Explorer with possibility to export items
28
-
-Edit directly on server
20
+
- 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 <kbd>Cmd</kbd>/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> menu.
21
+
-Direct access to edit or view server code VSCode Explorer via `isfs` and `isfs-readonly` FileSystemProviders (e.g. using a [multi-root workspace](https://code.visualstudio.com/docs/editor/multi-root-workspaces)).
22
+
-Server Explorer view (ObjectScript: Explorer) with ability to export items to working directory. 
29
23
30
24
## Installation
31
25
@@ -35,33 +29,109 @@ Open VSCode. Go to extensions and search for "ObjectScript" like it is shown on
35
29
Or install from ObjectScript extension page on [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=daimor.vscode-objectscript)
To be able to use many features you first need to configure the connection to your IRIS/Caché/Ensemble server(s) in your [VSCode settings](https://code.visualstudio.com/docs/getstarted/settings). If you are unfamiliar with how settings work and how they are edited, use that link.
35
+
36
+
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 to get assistance when editing the JSON definition. For example:
37
+
38
+
```json
39
+
"intersystems.servers": {
40
+
"local": {
41
+
"webServer": {
42
+
"scheme": "http",
43
+
"host": "127.0.0.1",
44
+
"port": 52773
45
+
},
46
+
"description": "My local IRIS",
47
+
"username": "me"
48
+
}
49
+
}
50
+
```
51
+
Setting the `username` property is optional. If omitted it will be prompted for when connecting.
52
+
53
+
By defining connections in your User Settings they become available for use by any workspace you open in VSCode.
54
+
55
+
### Client-side Editing
56
+
57
+
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.
58
+
59
+
We recommend that `objectscript.conn` uses its `server` property to point to an entry in `intersystems.servers`. For example:
39
60
40
-
To be able to use many plugin features, you need to configure the connection to Caché/IRIS server first. You can create or edit existing `.vscode/settings.json` file. So, your settings file may look something like this.
41
-
```JSON
61
+
```json
42
62
"objectscript.conn": {
43
63
"active": true,
44
-
"label": "LOCAL",
45
-
"host": "127.0.0.1",
46
-
"port": 52773,
47
-
"username": "user",
48
-
"password": "password",
49
-
"ns": "USER",
50
-
"https": false
64
+
"server": "local",
65
+
"ns": "USER"
51
66
}
52
-
```
67
+
```
68
+
69
+
The mandatory `ns` property defines which server namespace you will work with. If `username` is set here it overrides that setting from the `intersystems.servers` entry.
70
+
71
+
### Server-side Editing
72
+
73
+
To edit code directly in one or more namespaces on one or more servers (local or remote) we recommend creating a workspace definition file (XYZ.code-workspace) in which 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 VSCode and thus protected against changing.
74
+
75
+
1. Start VSCode.
76
+
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'.
77
+
3. Use 'Save Workspace As...' to create an empty file with a .code-workspace extension.
78
+
4. Use the Command Palette to run 'Preferences: Open Workspace Settings (JSON)'.
79
+
5. Add a `folders` array that defines one or more root folders for your workspace. The `uri` property of each folder specifies whether to use `isfs` or `isfs-readonly`, and which entry within `intersystems.servers` to get the connection definition from. All example here reference one named `local`. Add a `ns` query parameter to specify which namespace to access. Optionally add a `label` property to set the display name of the folder in Explorer. Optionally add a workspace-specific `settings` object to hide the ObjectScript Explorer view, which is not usually needed when working server-side in this way.
80
+
81
+
```json
82
+
{
83
+
"folders": [
84
+
{
85
+
"name": "local:USER",
86
+
"uri": "isfs://local/?ns=USER"
87
+
},
88
+
{
89
+
"name": "local:USER (readonly)",
90
+
"uri": "isfs-readonly://local/?ns=USER"
91
+
}
92
+
],
93
+
"settings": {
94
+
"objectscript.showExplorer": false
95
+
}
96
+
}
97
+
```
98
+
99
+
To access the server-side files of a web application, format your `uri` property like this:
53
100
54
-
Or you can edit it through settings editor. Which you can open from menu *Code* > *Preferences* > *Settings* for macOS or *File* > *Preferences* > *Settings* for Windows, search for "workspace settings" through Command Palette [<kbd>⌘⇧P</kbd>/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>] or by shortcut [<kbd>⌘</kbd>+<kbd>,</kbd>/<kbd>Ctrl</kbd>+<kbd>,</kbd>].
101
+
```json
102
+
{
103
+
"uri": "isfs://local/csp/user/?&csp&ns=USER"
104
+
}
105
+
```
106
+
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.
107
+
108
+
To see only classes in the X.Y package, format the uri like this:
109
+
110
+
```json
111
+
{
112
+
"uri": "isfs://local/X/Y?ns=USER&type=cls"
113
+
}
114
+
```
55
115
56
-
- Find a 'objectscript', do not forget to set `active` to `true`
57
-
`port` should follow to web port of instance (usually by default, `57772` for Caché/Ensemble, `52773` for IRIS) 
58
-
- Change settings according to your Caché/IRIS instance
59
-
- You will see related output in "Output" while switched to "ObjectScript" channel (right drop-down menu on top of the output window)
116
+
Other query parameters that can be specified:
117
+
-`type=cls` to show only classes, or `type=rtn` to show only routines.
118
+
-`flat=1` to flatten the hierarchy.
119
+
-`generated=1` to show generated items.
120
+
-`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`).
60
121
61
122
## Notes
62
123
63
-
For Caché/IRIS instance with maximum security level, add `%Development` role for `/api/atelier/` web-application ( [More](https://community.intersystems.com/post/using-atelier-rest-api) )
64
-
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 a following SQL Procedure to your user on target namespace.
124
+
Connection-related output appears in the "Output" view while switched to the "ObjectScript" channel using the drop-down menu on the view titlebar.
125
+
126
+
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)).
127
+
128
+
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.
65
129
```SQL
66
130
GRANT EXECUTE ON %Library.RoutineMgr_StudioOpenDialog TO xxx
67
131
```
132
+
133
+
## Support and Training
134
+
135
+
[CaretDev](https://caretdev.com/#products) provides commercial support services. [Request a Quote](https://caretdev.com/contact-us/).
136
+
137
+
On-line course from CaretDev - [Developing with VSCode ObjectScript – Easy Start](https://caretdev.com/courses/).
0 commit comments