{"id":18665978,"url":"https://github.com/hadihammurabi/nvim-config","last_synced_at":"2025-10-21T06:28:44.953Z","repository":{"id":165444603,"uuid":"640791416","full_name":"hadihammurabi/nvim-config","owner":"hadihammurabi","description":"Neovim configuration that full features and still fast","archived":false,"fork":false,"pushed_at":"2025-02-01T19:04:00.000Z","size":80,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T23:43:03.708Z","etag":null,"topics":["lua","neovim","vim"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/hadihammurabi.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,"zenodo":null}},"created_at":"2023-05-15T06:21:30.000Z","updated_at":"2025-02-01T19:04:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"3dfa07be-500c-4cff-a6f0-bf7364099dd8","html_url":"https://github.com/hadihammurabi/nvim-config","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hadihammurabi/nvim-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadihammurabi%2Fnvim-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadihammurabi%2Fnvim-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadihammurabi%2Fnvim-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadihammurabi%2Fnvim-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hadihammurabi","download_url":"https://codeload.github.com/hadihammurabi/nvim-config/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadihammurabi%2Fnvim-config/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263868203,"owners_count":23522315,"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":["lua","neovim","vim"],"created_at":"2024-11-07T08:29:53.068Z","updated_at":"2025-10-21T06:28:44.862Z","avatar_url":"https://github.com/hadihammurabi.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Neovim Configuration\n\nA highly opinionated Neovim setup tailored for GoLang, Rust, TypeScript, SQL, Lua, and general development.\n\n\n\u003cdiv style=\"display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px;\"\u003e\n  \u003cimg src=\"https://res.cloudinary.com/ds2haxmjz/image/upload/v1724737569/neovim/qxudg81qcuaprdhymwi1.png\" alt=\"Neovim Configuration\" style=\"width: 100%; height: auto;\"/\u003e\n  \u003cimg src=\"https://res.cloudinary.com/ds2haxmjz/image/upload/v1724736388/neovim/gzcqwjoklqs3fcufs3i0.png\" alt=\"Neovim picture\" style=\"width: 100%; height: auto;\"/\u003e\n  \u003cimg src=\"https://res.cloudinary.com/ds2haxmjz/image/upload/v1724736370/neovim/wygofkcr20xtedwyx8rr.png\" alt=\"Neovim picture\" style=\"width: 100%; height: auto;\"/\u003e\n  \u003cimg src=\"https://res.cloudinary.com/ds2haxmjz/image/upload/v1724736336/neovim/qvrzb86jat6sgjy5cxtn.png\" alt=\"Neovim picture\" style=\"width: 100%; height: auto;\"/\u003e\n\n\u003c/div\u003e\n\n## Goals\n\nThis setup provides a familiar editor experience with:\n\n- **Coding Features:**\n  - Autocomplete\n  - Smart suggestions\n  - Signature help\n\n- **Supported Languages:**\n  - Go\n  - Rust\n  - TypeScript\n  - SQL\n  - Lua\n  - Vue\n  - Dart\n  - Kotlin\n\n- **Autoformatting:**\n  - Go (using `goimports`)\n  - Rust\n  - TypeScript\n  - SQL\n  - Lua\n  - Vue\n  - Dart\n  - Kotlin \n\n## Mappings\n\nHere are the key mappings I use, organized into groups for ease of reference. `\u003cleader\u003e` is set to `\u003cSpace\u003e`.\n\n```plaintext\n-- General\nN) \u003cC-s\u003e -- Save file (Normal mode).\nN) \u003cC-s\u003e -- Save file (Insert mode).\nN) \u003cTab\u003e -- Insert tab character (Insert mode).\nN) jk -- Exit insert mode (Insert mode).\nN) kj -- Exit insert mode (Insert mode).\n\n-- Buffers\nN) \u003cleader\u003eb -- Buffer group.\nN) \u003cleader\u003ebb -- List buffers.\nN) \u003cleader\u003ebd -- Close buffer.\nN) \u003cleader\u003ebn -- Next buffer.\nN) \u003cleader\u003ebp -- Previous buffer.\nnvim-config\n-- Debugging\nN) \u003cleader\u003ed -- Debugging group.\nN) \u003cleader\u003edB -- Clear all breakpoints.\nN) \u003cleader\u003edb -- Toggle breakpoint.\nN) \u003cleader\u003edc -- Continue debugging.\nN) \u003cleader\u003edr -- Restart current debugging session.\nN) \u003cleader\u003edt -- Terminate debugging session.\nN) \u003cleader\u003edu -- Show debugging UI.\n\n-- Finding\nN) \u003cleader\u003ef -- Find group.\nN) \u003cleader\u003efd -- Search diagnostics.\nN) \u003cleader\u003eff -- Find files.\nN) \u003cleader\u003efg -- Live grep in workspace.\nN) \u003cleader\u003efo -- Find symbols (outline).\nN) \u003cleader\u003efs -- Search saved session.\nN) \u003cleader\u003efz -- Find text in current buffer.\n\n-- Git\nN) \u003cleader\u003eg -- Git group.\nN) \u003cleader\u003egD -- Diff file against HEAD.\nN) \u003cleader\u003egb -- Blame line.\nN) \u003cleader\u003egd -- Diff line.\nN) \u003cleader\u003egl -- Open Lazygit.\nN) \u003cleader\u003egr -- Reset hunk.\n\n-- LSP\nN) \u003cleader\u003el -- LSP group.\nN) \u003cleader\u003elD -- Go to declaration.\nN) \u003cleader\u003ela -- Code action.\nN) \u003cleader\u003eld -- Go to definition.\nN) \u003cleader\u003elf -- Format code.\nN) \u003cleader\u003elh -- Hover information.\nN) \u003cleader\u003elr -- Rename symbol.\nN) \u003cleader\u003elt -- Go to type definition.\n\n-- Pane Management\nN) \u003cleader\u003ep -- Pane group.\nN) \u003cleader\u003epd -- Toggle Trouble.\n\n-- Tree\nN) \u003cleader\u003et -- Tree group.\nN) \u003cleader\u003etf -- Toggle file explorer.\n```\n\n## Installation\n\nFollow these steps to set up Neovim with this configuration:\n\n1. **Backup Your Existing Configuration**\n\n    Before proceeding, it's a good idea to back up your current Neovim configuration. Run the following command in your terminal:\n\n    ```bash\n    mv ~/.config/nvim ~/.config/nvim.bak\n    ```\n\n2. **Clone the Configuration Repository:**\n\n    Clone the repository containing your Neovim configuration to ~/.config/nvim:\n\n    ```bash\n    git clone https://github.com/hadihammurabi/nvim-config.git ~/.config/nvim\n    ```\n\n## LSP Configuration\n\nThis setup integrates several language servers and tools to enhance development experience:\n\n- **LSP Servers:**\n  - **Go**: `gopls` - Provides IDE features for Go development.\n  - **Rust**: `rust-analyzer` - Offers Rust-specific features and commands.\n  - **TypeScript**: `tsserver` - Supports TypeScript development.\n  - **SQL**: `sqlls` - Adds SQL language support.\n  - **Lua**: `lua_ls` - Adds Lua language support.\n  - **Vue**: `volar` - Provides language features for Vue files.\n  - **Dart**: `dartls` - Adds Dart language support for Flutter and other Dart projects. \n  - **Kotlin**: `kotlin_language_server` - Adds Kotlin language support. \n\n- **LSP Features:**\n  - **Signature Help**: Shows function signatures and documentation.\n  - **Hover Documentation**: Displays documentation for code under the cursor.\n  - **Go to Definition**: Navigates to the definition of the symbol under the cursor.\n  - **Go to Implementation**: Jumps to the implementation of a function or method.\n  - **Show References**: Lists all references to the symbol under the cursor.\n  - **Diagnostics**: Displays error and warning diagnostics in the buffer.\n\n- **Dependencies:**\n  - **lsp_signature.nvim**: Adds signature help to the LSP setup.\n  - **mason.nvim**: Manages LSP servers and other tools.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhadihammurabi%2Fnvim-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhadihammurabi%2Fnvim-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhadihammurabi%2Fnvim-config/lists"}