{"id":15984689,"url":"https://github.com/aappddeevv/emacs-scalai-mode","last_synced_at":"2026-05-02T06:45:24.061Z","repository":{"id":97609765,"uuid":"207317772","full_name":"aappddeevv/emacs-scalai-mode","owner":"aappddeevv","description":"Scala mode for significant indentation syntax.","archived":false,"fork":false,"pushed_at":"2019-09-10T12:07:14.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-04T20:47:04.594Z","etag":null,"topics":["emacs","scala"],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aappddeevv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-09-09T13:37:39.000Z","updated_at":"2019-09-10T12:07:16.000Z","dependencies_parsed_at":"2023-03-18T22:35:08.449Z","dependency_job_id":null,"html_url":"https://github.com/aappddeevv/emacs-scalai-mode","commit_stats":{"total_commits":5,"total_committers":1,"mean_commits":5.0,"dds":0.0,"last_synced_commit":"3f95fc993f566d4d22e04e9f54988c18de17bbfa"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aappddeevv/emacs-scalai-mode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aappddeevv%2Femacs-scalai-mode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aappddeevv%2Femacs-scalai-mode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aappddeevv%2Femacs-scalai-mode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aappddeevv%2Femacs-scalai-mode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aappddeevv","download_url":"https://codeload.github.com/aappddeevv/emacs-scalai-mode/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aappddeevv%2Femacs-scalai-mode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32525896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["emacs","scala"],"created_at":"2024-10-08T02:10:10.450Z","updated_at":"2026-05-02T06:45:24.028Z","avatar_url":"https://github.com/aappddeevv.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"# significant indentation scala mode (scalai)\n\nA mode for editing scala files that contain significant indentation, much like\npython. The mode is barebones. All it does is indent/outdent the selection. The\nmode does not allow significant indentation to co-exist with braces. Per some of\nthe last minute changes, you can \"cut and paste\" brace-oriented code into an\nindent file, surround it with braces and it will compile like before. This is\nunsupported because it would require blending to modes together and this mode is\nexclusively focused on significant indentation.\n\nTo change your source code, manually change your sbt scalacOptions to \"-rewrite\"\nand \"-new-syntax\" (2 separate strings in the options sequence, then \"-rewrite\",\n\"-indent\". After each scalacOptions change, run `clean` and `compile` to apply\nthe rewrite.\n\nIf someone knows how to blend in the python code into a scala mode, please help\nas I only created this mode to fill an immediate need but cannot maintain or\nsignificantly enhance it.\n\n# Setup\n\nIn your init.el you can add a package load that forces all `*.scala` files to\nuse this formatting or you can use it on a per-file basis. dotty requires that\nall the sources compiled in a project use the same formatting scheme. If you\nwant to keep part of your code using the old syntax, put that scala code in a\nseparate project.\n\nClone the repo into `~/.emacs.d/scalai-mode` by running:\n\n```sh\ncd ~/.emacs.el\ngit clone https://github.com/aappddeeevv/emacs-scalai-mode.git\n```\n\nIf you have cask installed, you can\n\n```sh\ncd scalai-mode\ncask build\n```\n\nto generate `.elc` files.\n\nChange your `init.el` file to load it:\n\n```lisp\n(use-package scalai-mode\n  :diminish scalai-mode\n  ;; use :pin melpa if you install from melpa, but this package is not in elpa yet!\n  ;;:pin  melpa\n  ;; or place the distribution in ~/.emacs.el/scalai-mode and use :load-path\n  :load-path \"scalai-mode\"\n  :mode (\"\\\\.s\\\\(c\\\\|scala\\\\|bt\\\\)$\")\n  :init (progn\n          (setq\n           scalai-indent:use-javadoc-style t\n           )\n          ;; I have this, you may not want it\n          (add-hook 'scalai-mode-hook\n                    (lambda ()\n                      (show-paren-mode t)\n                      (smartparens-mode t)\n                      (git-gutter-mode t)\n                      (prettify-symbols-mode t)\n                      )))\n  :bind (\n    ))\n```\n\nTo turn this mode on using a per-file basis, add this to the top of your\n`*.scala`.\n\n```scala\n// -*- mode: scalai -*-\n```\n\n# Coexistance\n\nIf you still have projects that use the old syntax and you need to use the real\nscala mode, you can skip adding the file extensions in use-package above and\njust use the per-file mode setting approach.\n\n# Attribution\n\nThe base code was taken from http://github.com/ensime/emacs-scala-mode and from\nthe existing code for emac's python mode.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faappddeevv%2Femacs-scalai-mode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faappddeevv%2Femacs-scalai-mode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faappddeevv%2Femacs-scalai-mode/lists"}