The gemstone
Visual Studio Code extension allows you to interact with GemStone/S, a Smalltalk object application server and database. See this two-minute video showing its operation.
- Log in to GemStone
- Execute code in a workspace
- View class in Topaz format
The traditional approach to a GemStone IDE requires a GCI library on the client and then can connect to a running database without any code installed on the server. While this could be done here, it requires distribution of a GCI library appropriate for the platform (Linux, macOS, or Windows) and GemStone version. Here we follow a different approach and specify that some code must be installed on the server that supports a WebSocket connection. With this, we don't need to worry about a local GCI library.
Note: To use this extension you do not need to fork, clone, or download the GitHub project. The GitHub repository is needed only for development. The usage is integrated with VS Code and installed as is any other extension using the instructions below.
To use this extension you need to have a Workspace with at least one folder ("If the first workspace folder is added, removed or changed, the currently executing extensions (including the one that called this method) will be terminated and restarted" updateWorkspaceFolders(), and we can't have that!). In Code,
- Select the
New Window
menu - Select the
Add Folder to Workspace...
menu and select a convenient folder- While it could be anywhere, consider a place where you could save Smalltalk scripts or have related source code
- Select the
Save the Workspace as...
menu
- Navigate to the Extensions view
<Ctrl>+<Shift>+<P>
theninstall extensions
- Enter
gemstone
- Select and install the GemStone IDE
You should define at least one login.
- Open the user settings (with the
Open User Settings
command) or the workspace settings (Open Workspace Settings
). - Select Extensions from the list on the left, click on GemStone, and click the
Edit in settings.js
link. - At the end of the JSON list, add a new entry for
gemstone.logins
. - This should give you a default set of settings that you can modify or add to. These items should appear in the Logins List when you select the GemStone icon on the left.
This extension is primarily a proof-of-concept to show that we can interact with a GemStone server from VSCode. Other than a way to explore the possibilities, it doesn't provide much functionality yet.
Recent development has been with VSCode 1.62.2 on macOS 10.15.7 with Node 18.6.0 and login to GemStone/S 64 Bit 3.6.4 running locally.
This is a Visual Studio Code extension written in TypeScript and running in a Node.js environment. Execute the following command in a terminal to install the dependencies:
npm install
Then use the "Run and Debug" command in Visual Studio Code to start a new window.
We use webpack to bundle the extension:
npm i --save-dev webpack webpack-cli ts-loader
We use vsce to manage packaging and publishing: npm install -g vsce
.