Skip to content

A VSCode plugin to support the Pharo Programming Language

License

Notifications You must be signed in to change notification settings

badetitou/vscode-pharo

Repository files navigation

vscode-pharo

Pharo Language Server

A Pharo client extension for VSCode.

Supported files

This extension support .st files and .class.st files (tonel format)

Features

We present here the existing features

Generic feature

Code highlighting

Highlighting

Breadcrumbs & Outline

Breadcrumbs & Outline

Native tests support

Native test image

Supported Language Server feature

Code formatting

Format gif

Tonel file formatting

Tonel file formatting

Hover

Hover

Auto-completion

Auto-Completion

Help with method signature

Signature help gif

Diagnostics

Diagnostics gif

Code Lens (Run Tests)

Run test gif

Jump type Definition

Jump type Definition gif

Debug Adapter Protocol feature

  1. Break on halt
    1. Show the stack
    2. Show the variables
    3. Add watch

Break on halt

  1. Step, step in, step out

Step the stack gif

Moose Book (Notebook for Moose/Pharo)

MooseBook is a way to use a notebook with Pharo

Additional feature

The additional feature can be access using the command palette of VSCode

  1. Save the Pharo image
  2. Execute and show the result

Inspect gif

  1. Execute and print the result

Print gif

  1. Keep variable state

Keep Variable state gif

  1. Explore variable state

Explore variable state gif

  1. Show the current server version

Show version gif

  1. Saving a tonel file in VSCode, save the corresponding methods/class in the Pharo image

  2. Access Pharo Image

Access Pharo Image gif

Installation

The easiest way is to execute the pharo.installIt command using VSCode command panel.

Specific version of the language server

You can also follow the walkthroughs to download a pre-configured version of the Language Server.

Walkthroughs

Or, to install the extension in an existing image :

  1. Install VSCode
  2. Install the Pharo extension
  3. Download a Pharo Language Server image or install the server in a pre-existing image
  4. Download a VM (headless or not) for the image
  5. Set up the Pharo extension property
    1. pharo.pathToVM: is the path to the VM executable
      1. Windows: C:\path\to\pharo.exe
      2. Linux: /path/to/pharo
      3. MacOS: /path/to/Pharo.app/Contents/MacOS/Pharo
    2. pharo.pathToImage: is the absolute path to the image

From version v1.0.0, please use at least version v1.1.0 of the Pharo Language Server.

Using VMs from the Pharo Launcher

Assuming you have the official Pharo Launcher installed, you can also configure the extension to use the launcher's VMs along with the language server image like so:

pharo-vscode-demo-x1.5-v2.mp4

(The example above is using VSCode with macOS 13)

Thanks

This extension is inspired from the one of Leonardo Nascimento for smalltalk.

Thanks a lot Leonardo!