Skip to content

Commit 2038611

Browse files
Merge pull request #877 from gjsjohnmurray/pre-sync-1.4.2
Add 1.4.2 changes to prerelease branch
2 parents 52d0b88 + 16b80a1 commit 2038611

21 files changed

+906
-369
lines changed

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Change Log
22

3+
## [1.5.2022022301] 23-Feb-2022 pre-release
4+
Add 1.4.2 changes
5+
36
## [1.5.2022020301] 03-Feb-2022 pre-release
47
- Fixes
58
- Allow `serverForUri` to return password for unnamed server (#837)
@@ -12,6 +15,21 @@ Add 1.4.1 changes
1215
## [1.5.2022011401] 14-Jan-2022 pre-release
1316
Add 1.4.0 changes.
1417

18+
## [1.4.2] 23-Feb-2022
19+
- Enhancements
20+
- Generate content when a new local class or routine is created (#867)
21+
- Add file icons (#822)
22+
- Support file copying in Explorer, with some [limitations](https://github.com/intersystems-community/vscode-objectscript/issues/854#issuecomment-1036318435) (#857)
23+
- Colorize text in Output channel when using VS Code 1.65 with proposed APIs enabled (#831)
24+
- Improve server-side searching (requires proposed API enabled - see README) (#852)
25+
- Add a distinct languageId (`objectscript-int`) for INT routines (#823)
26+
- Fixes
27+
- Make `Open Terminal in Docker` command work with newer Docker versions (#734)
28+
- Fix case where Quick Open (which requires proposed API) could open a file more than once (#861)
29+
- Avoid unnecessary Language Server work when importing or compiling a folder (#858, #859)
30+
- Activate extension correctly based on file-extensions present in workspace (#868)
31+
- Upgrade vulnerable dependencies
32+
1533
## [1.4.1] 14-Jan-2022
1634
- Fixes
1735
- Version 1.4.0 is failing to activate (#827)

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ To unlock these features (optional):
6262

6363
1. Download and install a beta version from GitHub. This is necessary because Marketplace does not allow publication of extensions that use proposed APIs.
6464
- Go to https://github.com/intersystems-community/vscode-objectscript/releases
65-
- Locate the beta immediately above the release you installed from Marketplace. For instance, if you installed `1.4.1`, look for `1.4.2-beta.1`. This will be functionally identical to the Marketplace version apart from being able to use proposed APIs.
66-
- Download the VSIX file (for example `vscode-objectscript-1.4.2-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.
65+
- Locate the beta immediately above the release you installed from Marketplace. For instance, if you installed `1.4.2`, look for `1.4.3-beta.1`. This will be functionally identical to the Marketplace version apart from being able to use proposed APIs.
66+
- Download the VSIX file (for example `vscode-objectscript-1.4.3-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.
6767

6868
2. From [Command Palette](https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_command-palette) choose `Preferences: Configure Runtime Arguments`.
6969
3. In the argv.json file that opens, add this line (required for both Stable and Insiders versions of VS Code):

docs/Configuration.md

Lines changed: 96 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,109 @@ title: Configuration
44
permalink: /configuration/
55
nav_order: 4
66
---
7-
# Configuration
87

9-
VS Code settings enable you to customize various aspects of its function. The InterSystems extensions provide settings used to configure VS Code for ObjectScript development.
8+
# Configuration
9+
10+
VS Code settings enable you to customize various aspects of its behavior. The InterSystems extensions provide settings used to configure VS Code for ObjectScript development.
11+
12+
{: #code-configuration-basic}
13+
14+
## Basic Configuration
15+
16+
VS Code has a concept of a [workspace](https://code.visualstudio.com/docs/editor/workspaces), which is a set of directories you want to use when you're working on a particular project. In the simplest setup when you are working within a single directory, a VS Code workspace is just the root folder of your project. In this case you keep workspace-specific settings in two files inside a `.vscode` directory located at the root of your project. Those two files are `settings.json`, which contains most configuration settings, and `launch.json`, which contains debugging configurations.
17+
18+
Here is the simplest `settings.json` file content for an ObjectScript project:
19+
20+
{: #code-workspace-simple}
21+
22+
```json
23+
{
24+
"objectscript.conn": {
25+
"ns": "USER",
26+
"active": true,
27+
"host": "localhost",
28+
"port": 52773,
29+
"username": "_SYSTEM"
30+
}
31+
}
32+
```
33+
34+
However, a better strategy is to let the [InterSystems Server Manager](https://marketplace.visualstudio.com/items?itemName=intersystems-community.servermanager) handle the server connection information as described [later](#config-server). That extension also allows you to store your password securely, so please use it. Then in `settings.json` you only need to specify the server name, which you set up in Server Manager:
35+
36+
```json
37+
{
38+
"objectscript.conn": {
39+
"server": "iris",
40+
"ns": "USER",
41+
"active": true
42+
}
43+
}
44+
```
45+
46+
If you need ObjectScript compilation flags other than the default ones, add an `"objectscript.compileFlags"` property to `settings.json` (more compileFlags information is [available here](/vscode-objectscript/settings#vscode-objectscript)):
47+
48+
{: #code-workspace-compileFlags}
49+
50+
```json
51+
{
52+
"objectscript.conn": {
53+
"server": "iris",
54+
"ns": "USER",
55+
"active": true,
56+
},
57+
"objectscript.compileFlags": "cuk/compileembedded=1"
58+
}
59+
```
60+
61+
Here is the simplest `launch.json` file content, with which you can debug the method `Test` in the class `Example.Service`, passing 2 parameters as input (see ["Running and Debugging"](/vscode-objectscript/rundebug/) for more information):
62+
63+
{: #code-workspace-simple-debug}
64+
65+
```json
66+
{
67+
"version": "0.2.0",
68+
"configurations": [
69+
{
70+
"type": "objectscript",
71+
"request": "launch",
72+
"name": "Example.Service.Test",
73+
"program": "##class(Example.Service).Test(\"answer\",42)"
74+
}
75+
]
76+
}
77+
```
78+
79+
If you want to debug a running process, `launch.json` should have a section like this, which will present a dropdown menu of running processes:
80+
81+
{: #code-workspace-simple-debug-process}
82+
83+
```json
84+
{
85+
"version": "0.2.0",
86+
"configurations": [
87+
{
88+
"type": "objectscript",
89+
"request": "attach",
90+
"name": "Example-attach-to-process",
91+
"processId": "${command:PickProcess}"
92+
}
93+
]
94+
}
95+
```
96+
97+
Note that `"configurations"` is an array, so you can define multiple configurations and choose the one to use from a dropdown menu in the Debug pane.
1098

1199
{: #code-workspaces}
12-
## VS Code Workspaces
13100

14-
To work with VS Code, you need to open a workspace. In the simplest setup, a VS Code workspace is just the root folder of your project. Workspace settings and task configurations are stored in the root folder in the `settings.json` file in a folder called `.vscode`. Debugging launch configurations are stored in `launch.json`, also in `.vscode`.
101+
## VS Code Workspaces
102+
103+
If your project requires more than a single root folder, you need to use a feature called multi-root workspaces. See [Multi-root Workspaces](https://code.visualstudio.com/docs/editor/multi-root-workspaces) in the VS Code documentation.
15104

16-
If you need to have more than one root folder in a VS Code workspace, use a feature called multi-root workspaces. See [Multi-root Workspaces](https://code.visualstudio.com/docs/editor/multi-root-workspaces) in the VS Code documentation.
105+
In this case settings are stored in a file with a `*.code-workspace` suffix. The filename's extension must be *.code-workspace*, for example `test.code-workspace`. This workspace file can be located anywhere. It defines what root folders the workspace consists of, and may also store other settings that would otherwise be stored in `settings.json` or `launch.json`. Settings in a root folder's `.vscode/settings.json` or `.vscode/launch.json` will override those in the workspace file, so be careful to use one or the other unless you truly need to leverage this flexibility.
17106

18-
A multi-root workspace is defined by a `*.code-workspace` file. The file can have any name followed by *.code-workspace*, for example `test.code-workspace`. The `*.code-workspace` file stores information about what folders are in the workspace, and may also store other settings that would otherwise be stored in the settings.json or launch.json files. Settings in a folder's `.vscode/settings.json` or `.vscode/launch.json` will override those in the `*.code-workspace` file, so be careful to use one or the other unless you truly need to leverage this flexibility. You can have a workspace file even if you are only working with a single root folder. Indeed, if you are [working server-side](../serverside/) you will always be using a workspace file.
107+
You can have a workspace file even if you are only working with a single root folder. Indeed, if you are [working server-side](../serverside/) you will always be using a workspace file.
19108

20-
To edit **InterSystems ObjectScript** extension settings in a `*.code-workspace` file in VS Code, open the workspace using **File > Open Workspace...**, select **File > Preferences > Settings** (**Code > Preferences > Settings** on Mac) and select the Workspace tab. Search for **objectscript: conn**, and click on *Edit in settings.json*. VS Code opens the `*.code-workspace` file for that workspace.
109+
To edit **InterSystems ObjectScript** extension settings in a `*.code-workspace` file in VS Code, open the workspace using **File > Open Workspace from File...**, select **File > Preferences > Settings** (**Code > Preferences > Settings** on Mac) and select the Workspace tab. Search for **objectscript: conn**, and click on *Edit in settings.json*. VS Code opens the `*.code-workspace` file for that workspace.
21110

22111
The **InterSystems ObjectScript** extension uses the multi-root workspaces feature to support ObjectScript development directly in namespaces on InterSystems servers.
23112

docs/RunDebug.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ The InterSystems ObjectScript Extension provides support for ObjectScript debugg
1111
- [Debugging Intro Video](https://code.visualstudio.com/docs/introvideos/debugging)
1212
- [Debugging User Guide](https://code.visualstudio.com/docs/editor/debugging)
1313

14+
Also, InterSystems Learning Services has produced [a short video](https://learning.intersystems.com/course/view.php?id=1795&ssoPass=1) which walks through the steps in this documentation page that you may find useful.
15+
1416
## Debug Configurations
1517

1618
In order to run or debug an ObjectScript class or routine or attach to a running process, you must create a debug configuration. Some other languages default to running the currently active file, but to run ObjectScript, you must specify the routine or ClassMethod to use or the running process to attach to.

docs/ServerSide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ The query string of the `uri` property accepts several parameters that control f
138138
- `isfs://myserver:user?type=cls`, shows only classes
139139
- `isfs://myserver:user?type=rtn`, shows only routines, mac, int and inc files
140140
- `isfs://myserver:user?generated=1`, shows generated files as well as not generated
141-
- `isfs://myserver:user?filter=%Z*.cls,%z*.cls,%Z*.mac`, comma-delimited list of search options, ignores `type`
141+
- `isfs://myserver:user?filter=%Z*.mac,%z*.mac`, comma-delimited list of search options, ignores `type`. The default is `*.cls,*.inc,*.mac,*.int`. To see all files, use `*`.
142142
- `isfs://myserver:user?flat=1`, a flat list of files does not split packages as folders.
143143

144144
The options `flat` and `generated` can be combined with each other, and with `type` or `filter`. If `filter` is specified, `type` is ignored.

docs/_sass/color_schemes/isc.scss

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
1-
$link-color: #333695;
1+
$link-color: #333695;
2+
3+
.side-bar {
4+
max-width: 300px !important;
5+
}
6+
7+
.main {
8+
max-width: 1200px !important;
9+
}

images/fileIcon.svg

Lines changed: 28 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)