{"id":15400748,"url":"https://github.com/agraef/sublime-pure","last_synced_at":"2026-02-07T12:31:57.047Z","repository":{"id":81375744,"uuid":"361537889","full_name":"agraef/sublime-pure","owner":"agraef","description":"Pure package for the Sublime Text editor","archived":false,"fork":false,"pushed_at":"2021-04-25T21:25:55.000Z","size":116,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-30T05:49:30.753Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/agraef.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":"2021-04-25T21:02:57.000Z","updated_at":"2021-04-25T21:25:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"e87dea0b-e47e-41c6-a596-46ebbdbf5846","html_url":"https://github.com/agraef/sublime-pure","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"f0fcd32f633c00646a00d81555ec9969733c859c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/agraef/sublime-pure","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fsublime-pure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fsublime-pure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fsublime-pure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fsublime-pure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agraef","download_url":"https://codeload.github.com/agraef/sublime-pure/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fsublime-pure/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29194019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T07:37:03.739Z","status":"ssl_error","status_checked_at":"2026-02-07T07:37:03.029Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2024-10-01T15:54:51.858Z","updated_at":"2026-02-07T12:31:57.031Z","avatar_url":"https://github.com/agraef.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Pure support for the Sublime Text editor\n\n**Sublime Pure** is a [Pure][0] package for the [Sublime Text][1] editor based on Adam Sanderson's [TextMate bundle][2]. The package has been tested with both Sublime Text 2 and the current beta version of Sublime Text 3 (build 3047 at the time of this writing). It provides syntax highlighting for Pure scripts, a few snippets for Pure control flow constructs, and build commands for running scripts and batch-compiling them to executables. Basic support for the [SublimeREPL][6] extension is also available.\n\n![screenshot](sublime-pure.png)\n\n## Installation\n\nThis package can be installed via [Package Control][10]. The package is not in the official repository channel yet, however, so you'll have to add `https://github.com/agraef/sublime-pure.git` using Package Control's `Add Repository` command.\n\nIf you prefer to install manually, you can just grab this repository and drop its contents into the `sublime-pure` subdirectory in your Sublime Text [Packages][8] folder (create the directory if necessary).\n\nNext time you open a script with the `.pure` extension, Sublime Text should properly highlight the script and provide you with commands to run and compile the script. You can also explicitly switch a buffer to Pure syntax using Sublime Text's `View | Syntax` menu.\n\nTo enable the [SublimeREPL][6] support, copy the `config/Pure` subdirectory in the repository into your `Packages/SublimeREPL/config` folder. This will allow you to run the Pure interpreter in a Sublime Text buffer. Please note that at present this step has to be done manually; there's no way to handle this through Package Control. Also note that this assumes that you already installed SublimeREPL beforehand (it's in the official package repositories).\n\n## Usage\n\nPlease note that this package is still in its early stages, but syntax highlighting and auto-indentation work already. There are also some snippets for various Pure constructs (including lambdas, the `case`, `with` and `when` control structures as well as different kinds of declarations) which can be entered by typing the corresponding keyword and hitting the `Tab` key to auto- complete. In addition, you may find one of the available alignment extensions helpful to align a collection of Pure equations at the `=` sign. I found that Randy Lai's [AlignTab][3] plugin works best with Pure, YMMV.\n\nYou can adjust the indentation according to your preferences by creating a file named `Pure.sublime-settings` in your `Packages/User` directory. By default, Sublime Text uses real tabs with a tab size of 4. To change the tab size to 2 and expand tabs to spaces (so that the indentation looks the same if you later open the file with another text editor), you can use the following settings:\n\n\t{ \"tab_size\": 2, \"translate_tabs_to_spaces\": true }\n\nThe following build commands are defined by the package:\n\n* `Build`: Compiles the current script to a native executable using the Pure batch compiler (`pure -c`).\n\n* `Run`: Runs the script with the Pure interpreter (in batch mode).\n\n* `Run in Terminal`: Runs the script in interactive mode (`pure -i`) inside a terminal window. (By default, the build command is configured to use `gnome-terminal`. You can change this by editing the [Pure.sublime-build][9] file accordingly.)\n\nThe `Build` and `Run` commands can be accessed as usual through Sublime Text's `Tool` menu and the corresponding keyboard shortcuts (`Ctrl+B` and `Ctrl+Shift+B` on Linux). The `Run in Terminal` command is available in Sublime Text's command palette (`Ctrl+Shift+P`, then search for `run`).\n\n## SublimeREPL Support\n\nAs an alternative to `Run in Terminal`, you can also run the interpreter interactively in a Sublime Text buffer. This requires that you have [SublimeREPL][6] installed, along with the corresponding `config/Pure` directory in the Sublime Pure repository (see above).\n\nOnce installed, you can find the Pure REPL in the `Tools | SublimeREPL` menu as well as in the command palette (`Ctrl+Shift+P`, then search for `repl` and look for `SublimeREPL: Pure`). The interpreter starts up in the directory of the buffer which is active at the time the REPL is invoked. You can also run the interpreter with the current script loaded using the `Pure - run current file` option.\n\nHere are some convenient keybindings which let you invoke the Pure REPL with `Ctrl+Super+P` and run a Pure script (if the current buffer is in Pure syntax mode) with `Ctrl+Super+R`. You can place these in your user keybindings file (`Preferences | Keybindings - User`):\n\n\t[\n\t\t{ \"keys\": [\"ctrl+super+p\"], \"command\": \"run_existing_window_command\",\n\t\t \"args\": {\"id\": \"repl_pure\", \"file\": \"config/Pure/Main.sublime-menu\"} },\n\t\t{ \"keys\": [\"ctrl+super+r\"], \"command\": \"run_existing_window_command\",\n\t\t  \"args\": {\"id\": \"repl_pure_run\", \"file\": \"config/Pure/Main.sublime-menu\"},\n\t\t  \"context\": [{ \"key\": \"selector\", \"operator\": \"equal\", \"operand\": \"source.pure\" }] }\n\t]\n\nSublimeREPL provides a command history as well as basic commands to feed lines, selections and entire scripts from a Pure buffer to the REPL. Please check the [SublimeREPL documentation][11] for further details. Various aspects of the plugin can be configured in the SublimeREPL settings file. Here's a useful setting which causes lines fed into the interpreter to be echoed in the REPL view:\n\n\t\"show_transferred_text\": true\n\nSublimeREPL is not a complete terminal emulation, so the interpreter's ``help`` command won't work in it, since it uses a text-based browser (w3m) by default. You can make ``help`` work, however, if you set either the ``BROWSER`` or the ``PURE_HELP`` environment variable to a graphical browser application such as Firefox or Chrome. For instance, here's the SublimeREPL setting that I use on Ubuntu to set the help browser to Chromium:\n\n\t\"default_extend_env\": {\"PURE_HELP\": \"chromium-browser\"}\n\nMore information about the online help system of the Pure interpreter can be found in the [Pure manual][12].\n\n## Support and Future Development\n\nPlease report bugs to the [issue tracker][4] or the [Pure mailing list][5].  Patches, comments and suggestions for improvements are welcome as well.\n\nThis package is still in its early stages. Possible directions for future development are better integration with [SublimeREPL][6] and [SublimeLinter][7] support. If you are a Sublime Text hacker who'd like to give a helping hand then we'd definitely like to hear from you!\n\n## Acknowledgements\n\nThanks are due to Adam Sanderson for making his original Pure TextMate bundle available. Adam did all the hard work. I merely ported his bundle, updated it to the latest Pure syntax and added the usual bits and pieces needed to make the package play nicely with Sublime Text.\n\n\nEnjoy. :)\n\nAlbert Gräf \u003caggraef at gmail.com\u003e\n\n\n[0]: https://agraef.github.io/pure-lang/\n[1]: http://www.sublimetext.com/\n[2]: http://endofline.wordpress.com/2009/09/03/textmate-bundle-for-pure/\n[3]: https://github.com/randy3k/AlignTab\n[4]: https://github.com/agraef/sublime-pure/issues\n[5]: http://groups.google.com/group/pure-lang\n[6]: https://github.com/wuub/SublimeREPL\n[7]: https://github.com/SublimeLinter/SublimeLinter\n[8]: https://docs.sublimetext.io/guide/getting-started/basic-concepts.html#the-packages-directory\n[9]: Pure.sublime-build\n[10]: https://sublime.wbond.net/\n[11]: http://sublimerepl.readthedocs.org/en/latest/\n[12]: https://agraef.github.io/pure-docs/pure.html#online-help\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagraef%2Fsublime-pure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagraef%2Fsublime-pure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagraef%2Fsublime-pure/lists"}