{"id":15107643,"url":"https://github.com/badetitou/vscode-pharo","last_synced_at":"2025-06-16T15:10:53.546Z","repository":{"id":60642839,"uuid":"311071720","full_name":"badetitou/vscode-pharo","owner":"badetitou","description":"A VSCode plugin to support the Pharo Programming Language","archived":false,"fork":false,"pushed_at":"2025-04-09T15:10:11.000Z","size":10094,"stargazers_count":30,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-02T10:01:06.643Z","etag":null,"topics":["language-server-protocol","pharo","smalltalk","vscode-pharo"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/badetitou.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-11-08T13:42:31.000Z","updated_at":"2025-04-09T21:19:47.000Z","dependencies_parsed_at":"2025-01-27T18:38:58.334Z","dependency_job_id":"a056b844-67ca-4acf-b298-6c288bbd12ca","html_url":"https://github.com/badetitou/vscode-pharo","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/badetitou/vscode-pharo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badetitou%2Fvscode-pharo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badetitou%2Fvscode-pharo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badetitou%2Fvscode-pharo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badetitou%2Fvscode-pharo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/badetitou","download_url":"https://codeload.github.com/badetitou/vscode-pharo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badetitou%2Fvscode-pharo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260183170,"owners_count":22971196,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["language-server-protocol","pharo","smalltalk","vscode-pharo"],"created_at":"2024-09-25T21:40:44.319Z","updated_at":"2025-06-16T15:10:53.514Z","avatar_url":"https://github.com/badetitou.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vscode-pharo \u003c!-- omit in toc --\u003e\n\n[![Pharo Language Server](https://vsmarketplacebadges.dev/version/badetitou.pharo-language-server.png)](https://marketplace.visualstudio.com/items?itemName=badetitou.pharo-language-server)\n\nA Pharo client extension for VSCode.\n\n- [Supported files](#supported-files)\n- [Features](#features)\n  - [Generic feature](#generic-feature)\n    - [Code highlighting](#code-highlighting)\n    - [Breadcrumbs \\\u0026 Outline](#breadcrumbs--outline)\n    - [Native tests support](#native-tests-support)\n  - [Supported Language Server feature](#supported-language-server-feature)\n  - [Debug Adapter Protocol feature](#debug-adapter-protocol-feature)\n  - [Moose Book (Notebook for Moose/Pharo)](#moose-book-notebook-for-moosepharo)\n  - [Additional feature](#additional-feature)\n- [Installation](#installation)\n  - [Specific version of the language server](#specific-version-of-the-language-server)\n  - [Using VMs from the Pharo Launcher](#using-vms-from-the-pharo-launcher)\n- [Thanks](#thanks)\n\n## Supported files\n\nThis extension support *.st* files and *.class.st* files (tonel format)\n\n## Features\n\nWe present here the existing features\n\n### Generic feature\n\n#### Code highlighting\n\n![Highlighting](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/highlighting.png)\n\n#### Breadcrumbs \u0026 Outline\n\n![Breadcrumbs \u0026 Outline](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/breadcrumbs-and-outline.gif)\n\n#### Native tests support\n\n![Native test image](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/native-test.png)\n\n### Supported Language Server feature\n\n**Code formatting**\n\n![Format gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/format.gif)\n\n**Tonel file formatting**\n\n![Tonel file formatting](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/format-tonel.gif)\n\n**Hover**\n\n![Hover](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/hover.png)\n\n**Auto-completion**\n\n![Auto-Completion](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/Auto-completion.gif)\n\n**Help with method signature**\n\n![Signature help gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/signatureHelp.gif)\n\n**Diagnostics**\n\n![Diagnostics gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/diagnostics.gif)\n\n**Code Lens (Run Tests)**\n\n![Run test gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/runTest.gif)\n\n**Jump type Definition**\n\n![Jump type Definition gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/jump-type-def.gif)\n\n### Debug Adapter Protocol feature\n\n1. Break on halt\n   1. Show the stack\n   2. Show the variables\n   3. Add watch\n\n![Break on halt](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/breakOnHalt.gif)\n\n2. Step, step in, step out\n\n![Step the stack gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/debugSteps.gif)\n\n\n### Moose Book (Notebook for Moose/Pharo)\n\nMooseBook is a way to use a notebook with Pharo\n\n### Additional feature\n\nThe additional feature can be access using the command palette of VSCode\n\n1. Save the Pharo image\n2. Execute and show the result\n\n![Inspect gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/inspectResult.gif)\n\n3. Execute and print the result\n\n![Print gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/printResult.gif)\n\n4. Keep variable state\n\n![Keep Variable state gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/keep-variable-state.gif)\n\n5. Explore variable state\n\n![Explore variable state gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/documentVariablesBrowser.gif)\n\n1. Show the current server version\n\n![Show version gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/pharo-version.gif)\n\n6. Saving a tonel file in VSCode, save the corresponding methods/class in the Pharo image\n\n7. Access Pharo Image\n\n![Access Pharo Image gif](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/accessPharoImage.gif)\n\n## Installation\n\nThe easiest way is to execute the `pharo.installIt` command using VSCode command panel.\n\n### Specific version of the language server\n\nYou can also follow the walkthroughs to download a pre-configured version of the Language Server.\n\n![Walkthroughs](https://raw.githubusercontent.com/badetitou/vscode-pharo/main/docs/img/walkthroughs.gif)\n\nOr, to install the extension in an existing image :\n\n1. Install [VSCode](https://code.visualstudio.com/)\n2. Install the [Pharo extension](https://marketplace.visualstudio.com/items?itemName=badetitou.pharo-language-server)\n3. Download a [Pharo Language Server image](https://github.com/badetitou/Pharo-LanguageServer/releases) or [install the server](https://github.com/badetitou/Pharo-LanguageServer#installation) in a pre-existing image\n4. Download a [VM](https://files.pharo.org/vm/pharo-spur64-headless/) (headless or not) for the image\n5. Set up the Pharo extension property\n   1. pharo.pathToVM: is the path to the VM executable\n      1. Windows: `C:\\path\\to\\pharo.exe`\n      2. Linux: `/path/to/pharo`\n      3. MacOS: `/path/to/Pharo.app/Contents/MacOS/Pharo`\n   2. pharo.pathToImage: is the absolute path to the image\n\n\u003e From version v1.0.0, please use at least version v1.1.0 of the Pharo Language Server.\n\n### Using VMs from the Pharo Launcher\n\nAssuming you have [the official Pharo Launcher](https://pharo.org/download) installed, you can also configure the extension to use the launcher's VMs along with the language server image like so:\n\nhttps://user-images.githubusercontent.com/3588798/230201074-90226504-fc32-4aac-8bab-89d23ea8f660.mp4\n\n(The example above is using VSCode with macOS 13)\n\n## Thanks\n\nThis extension is inspired from the one of [Leonardo Nascimento](https://github.com/leocamello/vscode-smalltalk) for smalltalk.\n\n\u003e Thanks a lot Leonardo!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadetitou%2Fvscode-pharo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbadetitou%2Fvscode-pharo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadetitou%2Fvscode-pharo/lists"}