{"id":13898212,"url":"https://github.com/monkoose/nvlime","last_synced_at":"2025-04-30T06:25:32.716Z","repository":{"id":65083425,"uuid":"581336193","full_name":"monkoose/nvlime","owner":"monkoose","description":"A Common Lisp development environment for Neovim","archived":false,"fork":false,"pushed_at":"2024-08-05T22:56:25.000Z","size":1292,"stargazers_count":82,"open_issues_count":6,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-30T13:32:41.387Z","etag":null,"topics":["common-lisp","neovim-plugin","slime"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"vlime/vlime","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monkoose.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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":"2022-12-22T22:44:09.000Z","updated_at":"2025-03-28T03:54:18.000Z","dependencies_parsed_at":"2023-11-26T22:31:34.891Z","dependency_job_id":"16a65f6f-c764-4ce9-a289-15792996dd98","html_url":"https://github.com/monkoose/nvlime","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkoose%2Fnvlime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkoose%2Fnvlime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkoose%2Fnvlime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkoose%2Fnvlime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monkoose","download_url":"https://codeload.github.com/monkoose/nvlime/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251652911,"owners_count":21622037,"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":["common-lisp","neovim-plugin","slime"],"created_at":"2024-08-06T18:04:09.905Z","updated_at":"2025-04-30T06:25:32.696Z","avatar_url":"https://github.com/monkoose.png","language":"Vim Script","funding_links":[],"categories":["Vim Script"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/6261276/209430731-dccaeebd-23e4-4f55-b8c3-4a6bfec7f01b.jpg\" alt=\"Nvlime logo\"\u003e\n\u003c/p\u003e\n\n**WARNING:**\n[parsley][parsley] neovim plugin should be installed for Nvlime to work.\n\n## Intro\n\nNvlime is a Common Lisp development environment for Neovim, similar to SLIME\nfor Emacs. It is a fork of long lived [Vlime][Vlime] plugin but with modernized\nUI.\n\nIt provides REPL integration, autocompletion with [nvim-cmp][nvim-cmp], cross\nreference utilities, a nice inspector, debugger, trace dialog, and many other\ngreat facilities.\n\nTo get your feet wet: [Quickstart](#Quickstart)\n\n## Why?\n\nVlime is a good plugin on top of the great tool. But it tries to sit on both\nchairs (Vim and Neovim), when their feature implementations keep diverging. Also\nit's UI is clunky and disruptive (at least for my taste). So Nvlime is\nsupporting only Neovim and focusing on improving Vlime UI with new Neovim\nfeatures. Check `CHANGELOG.md` to find out what have changed.\n\n## Current State\n\nNvlime is currently in beta state and in active development. So expect some\nchanges to configuration, UI or behavior. MREPLs currently do not work.\nPlease beware of bugs, and file an issue if you find anything weird/unexpected.\n\n## Dependencies\n\nMust-have:\n\n- Neovim 0.9.5+\n- Helper plugin [parsley][parsley]\n- ASDF\n- Quicklisp\n- An Internet connection to install other dependencies from Quicklisp\n\nGood to have:\n\n- [nvim-cmp][nvim-cmp] for autocompletion\n- parinfer or paredit plugin - Nvlime can only detect s-expressions inside\n  parentheses. To make your life easier, use\n  [paredit](https://github.com/kovisoft/paredit) or any of parinfer\n  implementations, like:\n  [nvim-parinfer](https://github.com/gpanders/nvim-parinfer) or\n  [nvim-parinfer-rust](https://github.com/harrygallagher4/nvim-parinfer-rust).\n  Even though paredit isn't perfect, but in my experience parinfer\n  plugins are the cause of annoying bugs at the time of this writing.\n\n## Supported CL Implementations\n\nThe CL implementations listed below are supported. If you tried out Nvlime with\nan implementation not listed here, please let me know (see the Contributing\nsection below for contact info).\n\n| Implementation | Version | Notes                                   |\n|----------------|---------|-----------------------------------------|\n| ABCL           | 1.4.0   | Supported by the nvlime-patched backend |\n| Allegro CL     | 10.0    | Tested with the Express Edition         |\n| CLISP          | 2.49+   | No multithreading support               |\n| ECL            | 16.1.3  | No SLDB support                         |\n| CCL            | 1.11    |                                         |\n| SBCL           | 2.1.19  |                                         |\n| LispWorks      | 6.1     | Tested with the Personal Edition        |\n\n## Quickstart\n\n### Installation\n\nUse `:h packages` or your plugin manager instructions to add Nvlime to Neovim.\nAs dependency Nvlime uses [parsley][parsley] - it is my plugin with a bunch\nof auxiliary functions. So it should be installed too. After that run `sbcl\n--load \u003cneovim plugins dir\u003e/nvlime/lisp/start-nvlime.lisp`.\n\nIf it's your first time running the server, Nvlime will try to install it's\ndependencies via Quicklisp.\n\n### Usage\n\nWhen the server is up and running, use Neovim to start editing a CL source\nfile, and type `\u003cleader\u003ecc` (`\\cc` by default) in normal mode to connect to the\nserver.\n\nYou can also let Neovim start the server for you - `\u003cleader\u003err`. See `:help\nnvlime-start-up` for more info.\n\nAll Nvlime keymaps starts with the \"leader\", so you are free to change\n`g:nvlime_nvlime.leader` to a key that is convenient for you (by default it is\nmapped to `\\`). Suggested keys are `,` or `\u003cSpace\u003e`.\n\nTo find out all plugin mappings for the current window type `\u003cleader\u003e?` or\n`\u003cF1\u003e`. There are a set of global mappings, which do not show in the help window.\nThey are listed below and work for all Nvlime windows:\n\n- `q` - to close the current window (except for lisp filetypes).\n- `\u003cleader\u003eww` - closes all plugin windows except main windows.\n- `\u003cEsc\u003e` - closes last opened floating window except current one.\n- `\u003cC-n\u003e` and `\u003cC-p\u003e` to scroll last opened floating window. If this keys are\n  messing up with your config change them with `g:nvlime_mappings` directory:\n  `global.normal.scroll_up` and `global.normal.scroll_down`. You can adjust\n  scroll step with `g:nvlime_config.floating_window.scroll_step` variable. It\n  is set to `3` lines by default.\n\nIf you need to make some floating window to be persistent, just turn it into a\nnormal window. You can do it by splitting it into you current window with\n`\u003cC-w\u003eh`, `\u003cC-w\u003ej`, `\u003cC-w\u003ek`, `\u003cC-w\u003el` or split the whole Neovim screen with\n`\u003cC-w\u003eH`, `\u003cC-w\u003eJ`, `\u003cC-w\u003eK` or `\u003cC-w\u003eL`.\n\nMain windows (repl, sbcl and compiler notes) aren't floating and by default\nplaced on the right side of the screen. You can change this behavior with\n`g:nvlime_config.main_window` variable, which can accept a `position` key\none of `\"top\"`, `\"bottom\"`, `\"left\"` or `\"right\"` and `size` key.\n\nTo enable autocompletion with [nvim-cmp][nvim-cmp], first set\n`vim.g.nvlime_config.cmp.enabled = true`. Additionally you need to register the\nsource for nvim-cmp, read its documentation for more information:\n\n```lua\nrequire('cmp').setup.filetype({'lisp'}, {\n    sources = {\n        { name = 'nvlime' }\n        -- other sources like path or buffer, etc.\n        -- .\n        -- .\n    }\n})\n```\n\nSee `:help nvlime-tutor` for a tutorial on how to use the main features, and\n`:help nvlime` for the full documentation.\n\n## Contributing\n\nThe source repo for Nvlime is hosted on GitHub:\n\n    https://github.com/monkoose/nvlime\n\nIssues and pull requests are welcome. Read `CONTRIBUTING.md` for more info.\n\n## Credits\n\n- To all the contributors of [slime](https://github.com/slime/slime) Emacs\n  extension. SLIME is free software.\n- To all the contributors of [Vlime][Vlime] plugin. Without it there wouldn't\n  be Nvlime. MIT license.\n- To [HiPhish](https://github.com/HiPhish) for\n  [nvim-cmp-vlime](https://github.com/HiPhish/nvim-cmp-vlime) Some code from it\n  were converted from lua to fennel for autocompletion support. MIT license.\n\n## License\n\nMIT. See `LICENSE.txt`.\n\n[nvim-cmp]: https://github.com/hrsh7th/nvim-cmp\n[Vlime]: https://github.com/vlime/vlime\n[parsley]: https://github.com/monkoose/parsley\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonkoose%2Fnvlime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonkoose%2Fnvlime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonkoose%2Fnvlime/lists"}