{"id":13682218,"url":"https://github.com/talha-akram/anvil","last_synced_at":"2025-04-30T07:31:11.290Z","repository":{"id":37427788,"uuid":"208782706","full_name":"talha-akram/anvil","owner":"talha-akram","description":"A highly adaptable Neovim configuration focused on providing a great development experience while being easy to extend and maintain.","archived":false,"fork":false,"pushed_at":"2024-03-06T20:36:11.000Z","size":8648,"stargazers_count":36,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-03-06T21:49:16.392Z","etag":null,"topics":["dotfiles","lua","neovim","neovim-configuration","nvim"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/talha-akram.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}},"created_at":"2019-09-16T11:27:00.000Z","updated_at":"2024-04-14T20:43:08.813Z","dependencies_parsed_at":"2023-02-14T20:31:40.679Z","dependency_job_id":"4d279789-5ba0-43eb-aca2-780ebdac714c","html_url":"https://github.com/talha-akram/anvil","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/talha-akram%2Fanvil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talha-akram%2Fanvil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talha-akram%2Fanvil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/talha-akram%2Fanvil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/talha-akram","download_url":"https://codeload.github.com/talha-akram/anvil/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224201915,"owners_count":17272664,"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":["dotfiles","lua","neovim","neovim-configuration","nvim"],"created_at":"2024-08-02T13:01:42.336Z","updated_at":"2025-04-30T07:31:11.260Z","avatar_url":"https://github.com/talha-akram.png","language":"Lua","funding_links":[],"categories":["Lua"],"sub_categories":[],"readme":"# Anvil\nA highly adaptable Neovim distribution. The goal is to have a minimal Neovim configuration providing a great development experience out of the box. Anvil favours building on top of native features over adding plugins. So instead of spending hours getting the basics to work or navigating through a huge mess of plugins, you can focus on customizing Neovim with features you need without being overwhelmed. Anvil is extremely lightweight, has little to no configuration of its own and only adds essential plugins that are needed to have a comfortable development experience. For most users, all that should be needed is to customize the key bindings and configure a language server.\n\n## Preview:\n![anvil preview](https://github.com/user-attachments/assets/710967a1-7f6d-4a70-827f-247de3ae982b)\n\n### Completions\n#### `\u003cA-Space\u003e` opens completions for available snippets where as `\u003cC-Space\u003e` open code completions\n\n\u003cimg width=\"1262\" alt=\"image\" src=\"https://github.com/user-attachments/assets/d6e99dea-58ee-4c4b-a03a-64cedfd45827\" /\u003e\n\nThe completions are powered by the LSP and the snippets are provided by `friendly-snippets`. Additionally custom snippets can be added under `snippets/${FILE_TYPE}.json`which will get loaded automatically and become available for that file type. The snippets are defined using the LSP snippet definition format and will override any matching snippet from `friendly-snippets`.\n\n### Fast minimal picker using [mini.pick](https://github.com/echasnovski/mini.pick):\nAnvil uses [mini.pick](https://github.com/echasnovski/mini.pick) as the default fuzzy finder and general purpose list picker, primarily due to how easy it is to extend with functionality, ease of use, performance, small size and zero dependencies on other plugins / extensions.\n\n![completion preview](https://github.com/user-attachments/assets/978b0aca-2dba-4fb8-85fc-f193cb246a8f)\n\nHave a look at [lua/plugins/picker.lua](https://github.com/talha-akram/anvil/blob/master/lua/plugins/picker.lua) to see what is available and to use as a reference to help in building your own custom pickers.\n\n### Status Line\nAn easy to modify Status Line written in Lua shows detailed information related to your opened buffer:\n- Current mode indicator.\n- Current file path including unwritten state and read only indicator.\n- Stats related to diagnostics (number of Errors `E`, Warnings `W`, Information `I` and Hints `H`).\n- Attached Language Servers.\n- Cursor position (including selected characters and line count in visual mode).\n- File indentation and encoding information.\n- Buffer number information.\n- File type.\n- Scroll position.\n\nAll this without using any patched fonts, works great over ssh and locally and looks great everywhere!\n\n#### Status Line preview\n![Status Line preview](https://github.com/user-attachments/assets/5e37fde3-ea61-4a03-9adb-6c9b1eb6ffe8)\n\nAn accent color is applied to the Status Bar depending on current mode. The accent color is only applied to the mode indicator, cursor position, buffer number and file type information.\n\n## Goals\nTo create a highly extensible Neovim configuration that can easily be adapted as an IDE for\nany programming language via LSP while staying light and as close to vanilla Neovim as possible.\nThis distribution aims to be a non intrusive, solid base which the user can easily customize to\nfit their workflow needs.\n\n## Contributing\nFound a bug or something is broken?\nHave a suggestion or feature you want added?\nPlease open an issue.\n\nWant to contribute? Awesome! Please make a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftalha-akram%2Fanvil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftalha-akram%2Fanvil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftalha-akram%2Fanvil/lists"}