{"id":18045746,"url":"https://github.com/juliaeditorsupport/julia-ts-mode","last_synced_at":"2025-06-15T22:34:03.220Z","repository":{"id":141844626,"uuid":"580017078","full_name":"JuliaEditorSupport/julia-ts-mode","owner":"JuliaEditorSupport","description":"Experimental Emacs Julia major mode using tree-sitter","archived":false,"fork":false,"pushed_at":"2025-01-15T14:49:38.000Z","size":108,"stargazers_count":38,"open_issues_count":9,"forks_count":9,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-10T05:07:45.921Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Julia","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/JuliaEditorSupport.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2022-12-19T14:10:21.000Z","updated_at":"2025-02-16T11:58:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"8bd48887-3328-4f5a-b8f0-4784a5c84739","html_url":"https://github.com/JuliaEditorSupport/julia-ts-mode","commit_stats":null,"previous_names":["ronisbr/julia-ts-mode"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/JuliaEditorSupport/julia-ts-mode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaEditorSupport%2Fjulia-ts-mode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaEditorSupport%2Fjulia-ts-mode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaEditorSupport%2Fjulia-ts-mode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaEditorSupport%2Fjulia-ts-mode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuliaEditorSupport","download_url":"https://codeload.github.com/JuliaEditorSupport/julia-ts-mode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaEditorSupport%2Fjulia-ts-mode/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260060558,"owners_count":22953125,"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":[],"created_at":"2024-10-30T18:22:01.948Z","updated_at":"2025-06-15T22:34:03.171Z","avatar_url":"https://github.com/JuliaEditorSupport.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Julia major mode using tree-sitter\n\nEmacs major mode for the Julia programming language using tree-sitter for\nfont-lock, indentation, imenu, and navigation. It is derived from\n[`julia-mode`](https://github.com/JuliaEditorSupport/julia-emacs).\n\n# Installation\n\n## Dependencies\n\nThis package requires:\n\n1. Emacs 29 or newer built with tree-sitter support;\n2. [Julia tree-sitter grammar](https://github.com/tree-sitter/tree-sitter-julia); and\n3. The package [`julia-mode`](https://github.com/JuliaEditorSupport/julia-emacs).\n\n## Installation from MELPA\n\n`julia-ts-mode` is available on MELPA. The recommended way to install it is\nusing `use-package`. The following code installs `julia-ts-mode` and selects it\nas the default major mode for Julia files:\n\n``` emacs-lisp\n(use-package julia-ts-mode\n  :ensure t\n  :mode \"\\\\.jl$\")\n```\n\n## Installation from source\n\nYou can install this package from source by cloning this directory and adding\nthe following lines to your Emacs configuration:\n\n``` emacs-lisp\n(add-to-list 'load-path \"\u003cpath to the source-code tree\u003e\")\n(require 'julia-ts-mode)\n```\n\n## Installing Julia Tree-Sitter Grammar\n\nThe recommended way to install the tree-sitter grammar is using the package\n[treesit-auto](https://github.com/renzmann/treesit-auto). In this case, the\nJulia tree-sitter grammar will be automatically downloaded and compiled when a\nJulia file is opened using the major mode `julia-ts-mode`. For more information\non how to install and configure `treesit-auto`, check the package documentation.\n\n### Upgrading grammar after a package update\n\nNote that the [tree-sitter grammar for\nJulia](https://github.com/tree-sitter/tree-sitter-julia) is under active\ndevelopment, and breaking changes are often introduced between versions. To\nprovide maximum compatibility, the exact version of the grammar library is fixed\nin `julia-ts-mode.el`, with planned regular updates to both the grammar version\nand the tree-sitter queries built on top of it. However, the grammar library\nitself isn't updated automatically by Emacs. If, after a `julia-ts-mode` package\nupdate, you get some quirky tree-sitter error messages, and font-locking fails\nto work in a `julia-ts-mode` buffer, run `M-x treesit-install-language-grammar\nRET julia RET` to upgrade the grammar library. This should resolve the issues.\n\n# LSP Configuration\n\nThis mode is derived from `julia-mode`. Hence, most of the feature available for\nit will also work in `julia-ts-mode`. However, the LSP requires additional\nconfiguration. First, it is necessary to install the package\n[`lsp-julia`](https://github.com/gdkrmr/lsp-julia), and apply the desired\nconfiguration as stated in its documentation. Afterward, add the following code\nto your Emacs configuration file:\n\n``` emacs-lisp\n(add-to-list 'lsp-language-id-configuration '(julia-ts-mode . \"julia\"))\n(lsp-register-client\n(make-lsp-client :new-connection (lsp-stdio-connection 'lsp-julia--rls-command)\n                 :major-modes '(julia-mode ess-julia-mode julia-ts-mode)\n                 :server-id 'julia-ls\n                 :multi-root t))\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliaeditorsupport%2Fjulia-ts-mode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliaeditorsupport%2Fjulia-ts-mode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliaeditorsupport%2Fjulia-ts-mode/lists"}