{"id":17297016,"url":"https://github.com/adamniederer/lsp-gst","last_synced_at":"2026-02-09T00:30:57.210Z","repository":{"id":80548462,"uuid":"188616619","full_name":"AdamNiederer/lsp-gst","owner":"AdamNiederer","description":"A language server for... GNU Smalltalk?!","archived":false,"fork":false,"pushed_at":"2019-05-28T01:20:42.000Z","size":7,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-05T00:14:32.612Z","etag":null,"topics":["gnu-smalltalk","language-server-protocol","lsp","lsp-server","smalltalk"],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdamNiederer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2019-05-25T22:08:33.000Z","updated_at":"2024-02-02T17:12:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"97c81904-b4de-44df-9335-da88a4a618af","html_url":"https://github.com/AdamNiederer/lsp-gst","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AdamNiederer/lsp-gst","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamNiederer%2Flsp-gst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamNiederer%2Flsp-gst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamNiederer%2Flsp-gst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamNiederer%2Flsp-gst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdamNiederer","download_url":"https://codeload.github.com/AdamNiederer/lsp-gst/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdamNiederer%2Flsp-gst/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29251440,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T22:49:53.206Z","status":"ssl_error","status_checked_at":"2026-02-08T22:49:51.384Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["gnu-smalltalk","language-server-protocol","lsp","lsp-server","smalltalk"],"created_at":"2024-10-15T11:14:28.037Z","updated_at":"2026-02-09T00:30:57.173Z","avatar_url":"https://github.com/AdamNiederer.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lsp-gst\n\nThe latest in a long series of profoundly useless projects from yours truly.\n\n## Supported Operations\n\n- `initialize`\n- `shutdown`\n- `textDocument/didOpen`\n- Multi-workspace support\n\n## Dependencies\n\n`lsp-gst` depends on the following packages:\n\n- An included version of [`gst-json`](https://github.com/plhx/gst-json), modified to use String rather than UnicodeString\n- [`I18N`](https://github.com/gnu-smalltalk/smalltalk/tree/master/packages/i18n)\n- [`STInST`](https://github.com/gnu-smalltalk/smalltalk/tree/master/packages/stinst)\n\nAnd provides the following namespaces:\n\n- `LSP.GST` - The primary namespace for GST-related LSP functions\n\n## Building \u0026 Installation\n\n### Build\n\nFirst, ensure you have `I18N` and `STInSt` available (`STInST` is often left out\nof distributions' GNU Smalltalk packages). Then, run the following commands to\ngenerate and run a fresh `lsp-gst` image:\n\n```sh\n$ gst-package -t . package.xml\n$ gst-load -iI lsp-gst.im lsp-gst\n```\n\nThe language server protocol is now listening on stdin.\n\n### Use\n\nAssuming you are using Emacs' [`lsp-mode`](https://github.com/emacs-lsp/lsp-mode), with\n[`smalltalk-mode`](https://github.com/gnu-smalltalk/smalltalk/blob/master/smalltalk-mode.el)\nfrom the official gnu-smalltalk repo. `lsp-gst` currently operates on stdio, but\nshould be trivially modifiable to run on a proper socket in the future. A\nreasonable smalltalk setup for Emacs would be:\n\n```emacs-lisp\n(load-file \"path/to/smalltalk-mode.el\")\n(add-to-list 'auto-mode-alist '(\"\\\\.st\" . smalltalk-mode))\n\n(require 'lsp)\n(lsp-register-client\n (make-lsp-client :new-connection (lsp-stdio-connection '(\"gst-load\" \"-iI\" \"path/to/lsp-gst.im\" \"lsp-gst\"))\n                  :major-modes '(smalltalk-mode)\n                  :priority -1\n                  :server-id 'gst-ls))\n\n(with-eval-after-load 'smalltalk-mode\n  (add-hook 'smalltalk-mode-hook #'lsp))\n```\n\n`gst-lsp` should activate and connect when you open a Smalltalk file.\n\n## Licenses\n\n- `lib/json.st`: Copyright 2017 PlasticHeart; BSD-2-Clause.\n- All other source code: Copyright 2019 Adam Niederer; AGPLv3+\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamniederer%2Flsp-gst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadamniederer%2Flsp-gst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamniederer%2Flsp-gst/lists"}