Skip to content

Commit 2a2ff73

Browse files
authored
Merge branch 'master' into fix-593
2 parents 0c5ffc0 + a165d58 commit 2a2ff73

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+1638
-6374
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ dist/
77
*.vsix
88
vscode*.d.ts
99
test-fixtures
10+
.DS_Store

CHANGELOG.md

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,45 @@
11
# Change Log
22

3+
## [1.0.12] 10-Jun-2021
4+
- Allow extension to work in untrusted workspaces.
5+
- Don't switch to File Explorer view when opening a file from ObjectScript Explorer (#651)
6+
- Scroll to correct line after an Output panel link is clicked (#657)
7+
- Handle compilation errors better (#673)
8+
- Improve documentation.
9+
- Upgrade vulnerable dependencies.
10+
11+
## [1.0.11] 12-May-2021
12+
- Support client-side web app (CSP) workflow as long as web app path is in the `/csp/*` space (#147, #449)
13+
- Add compile-only commands 'Compile Current File' and 'Compile Current File with Specified Flags...' (#595)
14+
- Add 'Edit Other' command plus menu option below 'View Other' (#309)
15+
- Report server-side errors from imports and isfs saves (#391)
16+
- Use web app token when authenticating with Management Portal and Class Reference.
17+
- Permit empty argument list in 'Debug this' (#642)
18+
- Add `objectscript.compileOnSave` setting to turn off post-save compile (#594)
19+
- Treat `system=1` parameter on non-%SYS `isfs` folder spec as signal to include %-items (#623)
20+
- Add `objectscript.multilineMethodArgs` setting to use UDL parameter supported on servers with API version 4+ (#457)
21+
- Add snippets for business processes.
22+
- Prevent leading space in front of Class keyword from blocking import (#613)
23+
- Import into the correct namespace when working with multi-root workspace (#535)
24+
- Refactor 'Jump to Line' to use DocumentSymbolProvider.
25+
- Improve 'View Other' when working with servers supporting API version 4+ (#363)
26+
- Support Language Server enhancement that opens local copy of file when using 'Go to Definition' in client-side editing mode.
27+
- Update connections when settings are changed (#608)
28+
- Improve documentation.
29+
- Upgrade vulnerable dependencies.
30+
31+
## [1.0.10] 26-Apr-2021
32+
- Avoid prompting for already-saved password (#61)
33+
- Constrain QuickOpen list contents when `isfs` folder path targets a specific package (#581)
34+
- Show `isfs` folder label in breadcrumb even without proposed APIs enabled (#599)
35+
- Improve information about compiler flags (#532)
36+
- Add clickable links to compilation error text in Output pane (#386)
37+
- Relabel Variables folders in debugger to be `Private` and `Public` instead of `Local` and `Global` (#482)
38+
- Fix debugging breakpoint command message when class has multiple packages (#597)
39+
- Support expansion of orefs in debugger Variables pane provided server-side API version implements the necessary support (#598)
40+
- Improve README.
41+
- Upgrade vulnerable dependencies.
42+
343
## [1.0.9] 22-Mar-2021
444
- Allow system files (% classes) to be searched from non-%SYS namespace.
545
- Handle `objectscript.conn.server` referencing non-existent `intersystems.servers` entry (#586)
@@ -23,7 +63,7 @@
2363
## [1.0.7] 4-Jan-2021
2464
- Fix issue affecting use with Docker on Windows (#516)
2565
- Resolve problem debugging in a multi-root workspace using isfs (#387)
26-
- Allow 'View other' from custom Studio documents.
66+
- Allow 'View Other' from custom Studio documents.
2767
- Fix issue that prevented saving of custom Studio documents.
2868
- Add code snippets for Request, Response and multi-superclass class definitions, Projection, XData, Try Catch, $$$ThrowOnError macro.
2969
- Upgrade vulnerable dependency.

README.md

Lines changed: 57 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
- Documentation on [GitHub Pages](https://intersystems-community.github.io/vscode-objectscript/).
1414

15-
- Guidance on [reporting issues](https://community.intersystems.com/post/using-intersystems-objectscript-vs-code-how-report-issues).
15+
- Guidance on [reporting issues](https://community.intersystems.com/post/using-intersystems-objectscript-vs-code-how-report-issues). This guidance also appears in a later section of this document.
1616

1717
## Features
1818

@@ -38,10 +38,11 @@
3838

3939
Install [Visual Studio Code](https://code.visualstudio.com/) first.
4040

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).
41+
Then to get a set of extensions that collaborate to bring you a great ObjectScript development experience, install the [InterSystems ObjectScript Extension Pack](https://marketplace.visualstudio.com/items?itemName=intersystems-community.objectscript-pack).
4342

44-
![installation](https://raw.githubusercontent.com/intersystems-community/vscode-objectscript/master/images/installation.gif)
43+
When you install an extension pack VS Code installs any of its members that you don't already have. Then if you ever need to switch off all of those extensions (for example, in a VS Code workspace on a non-ObjectScript project) simply disable the extension pack at the desired level. Member extensions can still be managed individually.
44+
45+
Open VS Code. Go to Extensions view (<kbd>⌘</kbd>/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>X</kbd>), use the search string **@id:intersystems-community.objectscript-pack** and install it.
4546

4647
## Enable Proposed APIs
4748

@@ -50,14 +51,13 @@ This extension is able to to take advantage of some VS Code APIs that have not y
5051
The additional features (and the APIs used) are:
5152
- Server-side [searching across files](https://code.visualstudio.com/docs/editor/codebasics#_search-across-files) being accessed using isfs (_TextSearchProvider_)
5253
- [Quick Open](https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_quick-open) of isfs files (_FileSearchProvider_).
53-
- Improved labels (tabs, file lists, tooltips) for server-side files (_ResourceLabelFormatter_)
5454

5555
To unlock these features (optional):
5656

5757
1. Download and install a beta version from GitHub. This is necessary because Marketplace does not allow publication of extensions that use proposed APIs.
5858
- Go to https://github.com/intersystems-community/vscode-objectscript/releases
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.
59+
- Locate the beta immediately above the release you installed from Marketplace. For instance, if you installed `1.0.12`, look for `1.0.13-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.13-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.
6161

6262
2. From [Command Palette](https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_command-palette) choose `Preferences: Configure Runtime Arguments`.
6363
3. In the argv.json file that opens, add this line:
@@ -78,7 +78,7 @@ To be able to use many features you first need to configure the connection to yo
7878

7979
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.
8080

81-
Install that extension and consult its documentation about commands for easy setup of connections, plus assistance when editing the JSON definition directly.
81+
Install that extension and consult its documentation about its UI and commands for easy setup of connections, plus assistance when editing the JSON definition directly.
8282

8383
For more tips about the `intersystems.servers` object, see the [Notes](#Notes) section below.
8484

@@ -101,14 +101,57 @@ To edit code directly in one or more namespaces on one or more servers (local or
101101

102102
1. Start VS Code.
103103
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.
104+
3. On VS Code's Explorer view (<kbd>⌘</kbd>/<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>E</kbd>), click the 'Manage Servers' button which is contributed by the Server Manager extension.
105+
4. Find your target server in the tree, or use the '+' button to add a new server.
106+
5. Expand the server and its 'Namespaces' folder, then click on the 'pencil' icon for editing access to the namespace or the 'eye' icon for viewing access. If you want to work with web application files rather than classes and routines, hold down the <kbd>Alt</kbd>/<kbd>Option</kbd> key when clicking the button.
107+
6. Use 'Save Workspace As...' to store your workspace definition in a file with a `.code-workspace` extension.
106108

107109
For more about `isfs` and `isfs-readonly` folder specifications see the [Notes](#Notes) section below.
108110

111+
## Reporting Issues
112+
113+
[InterSystems ObjectScript for VS Code](https://intersystems-community.github.io/vscode-objectscript/) consists of three collaborating VS Code extensions. This modular architecture also means there are three different GitHub repositories where issues can be created. Fortunately VS Code itself helps with the task. You will need a GitHub account. Here's how:
114+
115+
1. From the Help menu in VS Code choose 'Report Issue'. Alternatively, open the Command Palette and run `Help: Report Issue...`.
116+
117+
2. When the dialog appears, use the first dropdown to classify your issue:
118+
- Bug Report
119+
- Feature Request
120+
- Performance Issue
121+
122+
3. In the second dropdown pick 'An extension'
123+
124+
4. The third dropdown lets you pick one of your installed extensions. You can type a few characters to find the right entry. For example, `isls` quickly selects "InterSystems Language Server".
125+
126+
Which one to choose? Here's a guide:
127+
- InterSystems Language Server
128+
- code coloring
129+
- Intellisense
130+
- InterSystems ObjectScript
131+
- export, import and compile
132+
- ObjectScript Explorer (browsing namespace contents)
133+
- direct server-side editing using `isfs://` folders in a workspace
134+
- integration with server-side source control etc
135+
- InterSystems Server Manager
136+
- Server Browser on the InterSystems Tools view
137+
- password management in local keychain
138+
- definition and selection of entries in `intersystems.servers`
139+
140+
If unsure, pick InterSystems ObjectScript.
141+
142+
5. Type a descriptive one-line summary of your issue. The dialog may offer a list of existing issues which could be duplicates. If you don't find one that covers yours, proceed.
143+
144+
6. Enter details. If your VS Code is authenticated to GitHub the dialog's button is captioned "Create on GitHub" and clicking it will open the issue, then load it in your browser so you can edit it. Otherwise it reads "Preview on GitHub" and launches a browser page where you must complete and submit your report.
145+
146+
Tips for use on the GitHub page:
147+
148+
- Paste images from your clipboard directly into the report field. For hard-to-describe issues an animated GIF or a short MP4 gets bonus points. The `Developer: Toggle Screencast Mode` in VS Code can help your recording make more sense.
149+
- Link to other issues by prefixing the target number with #
150+
- Remember that whatever you post here is visible to anyone on the Internet. Mask/remove confidential information. Be polite.
151+
109152
## Notes
110153

111-
- Connection-related output appears in the "Output" view while switched to the "ObjectScript" channel using the drop-down menu on the view titlebar.
154+
- Connection-related output appears in the 'Output' view while switched to the 'ObjectScript' channel using the drop-down menu on the view titlebar.
112155

113156
- The `/api/atelier/` web application used by this extension usually requires the authenticated user to have Use permission on the %Development resource ([read more](https://community.intersystems.com/post/using-atelier-rest-api)). One way is to assign the %Developer role to the user.
114157

@@ -163,15 +206,15 @@ This settings object is primarily relevant when doing client-side development.
163206
### More about `isfs` and `isfs-readonly` workspace folders
164207
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.
165208

166-
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.
209+
To modify how your folder behaves, edit the JSON of your workspace definition (_XYZ.code-workspace_ file). Get there by using the 'Edit Settings' option from the context menu of Server Manager's 'Servers' view, or by running the 'Preferences: Open Workspace Settings (JSON)' command from the Command Palette. Edit your `uri` property.
167210

168211
- The `csp` query parameter indicates web application files are to be shown. The uri path optionally specifies which application. The namespace suffix on the server name (preferred syntax) or the `ns` query parameter (deprecated) 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:
169212
```json
170213
{
171214
"uri": "isfs://local:user/csp/user?csp"
172215
},
173216
{
174-
"name": "local:%SYS web files (read-only)",
217+
"name": "local:%SYS web files (read-only)",
175218
"uri": "isfs-readonly://local/?ns=%SYS&csp"
176219
}
177220
```
@@ -188,6 +231,7 @@ To modify how your folder behaves, edit the JSON of your workspace definition (_
188231
- `type=cls` to show only classes, or `type=rtn` to show only routines.
189232
- `flat=1` to flatten the hierarchy.
190233
- `generated=1` to show generated items.
234+
- `system=1` to show system (%) items. Without this parameter these are only shown for the %SYS namespace.
191235
- `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`).
192236

193237
## Support and Training

docs/.vscode/settings.json

Whitespace-only changes.

0 commit comments

Comments
 (0)