# neoclide/coc.nvim

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/neoclide-coc-nvim).**

25,165 stars · 959 forks · TypeScript · NOASSERTION

## Links

- GitHub: https://github.com/neoclide/coc.nvim
- awesome-repositories: https://awesome-repositories.com/repository/neoclide-coc-nvim.md

## Topics

`autocompletion` `language-client` `lsp` `neovim-plugin` `nvim` `vim` `vim-plugin`

## Description

coc.nvim is a Node.js extension host and Language Server Protocol client that transforms Vim and Neovim into a full integrated development environment. It provides a framework for executing JavaScript and TypeScript plugins within a separate process to enable advanced IDE features without blocking the editor's main thread.

The project is distinguished by its ability to host extensions and language servers through a centralized JSON configuration. It supports the installation and lifecycle management of third-party extensions from registries or local files, allowing users to customize language-specific behaviors and server settings.

The system covers a broad range of code intelligence capabilities, including context-aware autocompletion, symbol refactoring, and source code formatting. It integrates diagnostics for error tracking, symbol navigation for jumping to definitions, and logging utilities for inspecting communication between the editor and language servers.

## Tags

### Development Tools & Productivity

- [LSP-Based Code Analysis](https://awesome-repositories.com/f/development-tools-productivity/lsp-based-code-analysis.md) — Leverages the Language Server Protocol to perform semantic analysis, code navigation, and intelligent completions within the editor.
- [Vim IDE Frameworks](https://awesome-repositories.com/f/development-tools-productivity/vim-ide-frameworks.md) — Transforms Vim and Neovim into full-featured integrated development environments through a comprehensive framework.
- [Code Completion](https://awesome-repositories.com/f/development-tools-productivity/code-completion.md) — Provides context-aware autocomplete and snippets by merging suggestions from multiple servers and internal buffers.
- [Language Server Protocol Clients](https://awesome-repositories.com/f/development-tools-productivity/code-editors-ides/extension-ecosystems-management/editor-ide-extensions/language-server-protocol-clients.md) — Implements an LSP client that facilitates communication between the editor and external language servers.
- [Definition Navigation](https://awesome-repositories.com/f/development-tools-productivity/definition-navigation.md) — Implements navigation to symbols, type definitions, and implementations across the codebase via the Language Server Protocol. ([source](https://github.com/neoclide/coc.nvim/blob/master/README.md))
- [Language Server Integrations](https://awesome-repositories.com/f/development-tools-productivity/language-server-integrations.md) — Implements a client that connects Vim and Neovim to Language Servers to provide IDE-like intelligence.
- [Vim LSP Hosts](https://awesome-repositories.com/f/development-tools-productivity/vscode-editor-integrations/extension-hosting/vim-lsp-hosts.md) — Brings Language Server Protocol capabilities and VSCode-like extensions to Vim and Neovim via a Node.js host.
- [Code Diagnostic Panels](https://awesome-repositories.com/f/development-tools-productivity/code-diagnostic-panels.md) — Highlights code diagnostics in the current buffer and enables navigation between errors and warnings. ([source](https://github.com/neoclide/coc.nvim/blob/master/README.md))
- [Code Intelligence Tooltips](https://awesome-repositories.com/f/development-tools-productivity/code-intelligence-tooltips.md) — Displays detailed documentation and type information for code symbols through hover actions and floating windows.
- [Automated Code Refactoring](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/code-analysis-and-transformation/automated-code-refactoring.md) — Supports automated symbol renaming and structural code optimizations across a project. ([source](https://github.com/neoclide/coc.nvim/blob/master/README.md))
- [Workspace Change Monitoring](https://awesome-repositories.com/f/development-tools-productivity/development-environment-management/development-environments/workspace-management/workspace-file-operations/workspace-change-monitoring.md) — Monitors workspace files to automatically synchronize state and trigger updates between the editor and language servers. ([source](https://github.com/neoclide/coc.nvim/wiki/Install-coc.nvim))
- [Diagnostic Tracking](https://awesome-repositories.com/f/development-tools-productivity/diagnostic-tracking.md) — Maintains a map of file errors and warnings pushed from servers to be rendered as editor highlights.
- [Editor Diagnostics](https://awesome-repositories.com/f/development-tools-productivity/editor-diagnostics.md) — Visually renders linting errors, warnings, and hints directly within the editor interface. ([source](https://github.com/neoclide/coc.nvim/wiki/F.A.Q))
- [Editor Extensions](https://awesome-repositories.com/f/development-tools-productivity/editor-extensions.md) — Provides a framework and API for executing TypeScript and JavaScript plugins to add advanced IDE features.
- [Extension Lifecycle Management](https://awesome-repositories.com/f/development-tools-productivity/extension-ecosystems/extension-marketplaces/extension-lifecycle-management.md) — Provides controls for enabling, disabling, reloading, and locking versions of installed plugins to manage their operational lifecycle. ([source](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions))
- [Editor Extension Installations](https://awesome-repositories.com/f/development-tools-productivity/installation-scripts/post-installation-extensions/editor-extension-installations.md) — Enables adding third-party functionality by downloading and activating extensions from a registry or custom local sources. ([source](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions))
- [Language Support Extensions](https://awesome-repositories.com/f/development-tools-productivity/language-support-extensions.md) — Integrates specialized programming language support into the editor by installing corresponding language-specific extension packages. ([source](https://github.com/neoclide/coc.nvim/wiki/Install-coc.nvim))
- [Reference Navigators](https://awesome-repositories.com/f/development-tools-productivity/reference-navigators.md) — Enables navigating to linked references using floating windows or direct redirection to target sources. ([source](https://github.com/neoclide/coc.nvim/wiki/F.A.Q))
- [Hover Information Displays](https://awesome-repositories.com/f/development-tools-productivity/symbol-navigation/hover-information-displays.md) — Displays symbol types, signatures, and documentation in floating windows via hover actions. ([source](https://github.com/neoclide/coc.nvim/wiki/F.A.Q))

### Programming Languages & Runtimes

- [Extension Host Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/node-js-process-managers/extension-host-runtimes.md) — Provides a separate Node.js process to run JavaScript and TypeScript plugins without freezing the editor.
- [Extension Hosts](https://awesome-repositories.com/f/programming-languages-runtimes/node-js-process-managers/extension-hosts.md) — Runs a separate Node.js process to manage plugins and language servers without blocking the editor main thread.

### Software Engineering & Architecture

- [JSON Configuration Schemas](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-formats-and-schemas/json-configuration-schemas.md) — Uses structured JSON files to serialize and parse user preferences, plugin settings, and key bindings at runtime.
- [Editor Extension Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/third-party-plugins/editor-extension-frameworks.md) — Provides a TypeScript-based framework for hosting and executing third-party plugins that add specialized tools to the development environment. ([source](https://github.com/neoclide/coc.nvim/blob/master/doc/coc.txt))
- [Programmatic Plugin Loading](https://awesome-repositories.com/f/software-engineering-architecture/plugin-architectures/programmatic-plugin-loading.md) — Provides a programmatic mechanism to import and activate JavaScript extensions from registries or local files at runtime.

### Web Development

- [Server-Side Process Management](https://awesome-repositories.com/f/web-development/server-process-management/server-side-process-management.md) — Manages the lifecycle and communication of background language server processes and streams their output to the editor.

### Part of an Awesome List

- [Source Code Formatters](https://awesome-repositories.com/f/awesome-lists/devtools/code-analysis-and-formatting/source-code-formatters.md) — Provides automated source code formatting based on language-specific style rules. ([source](https://github.com/neoclide/coc.nvim/blob/master/README.md))
- [Unified Multi-Source Completion Mergers](https://awesome-repositories.com/f/awesome-lists/devtools/completion/multi-stage-completion-pipelines/unified-multi-source-completion-mergers.md) — Combines completion items from multiple LSP servers, buffer words, and file paths into a single unified suggestion list.

### DevOps & Infrastructure

- [Server Configuration Management](https://awesome-repositories.com/f/devops-infrastructure/server-configuration-management.md) — Provides a centralized system for managing and modifying behavioral parameters and options for connected language servers. ([source](https://github.com/neoclide/coc.nvim/wiki/Install-coc.nvim))

### Networking & Communication

- [Asynchronous Message Passing](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/inter-process-communication/asynchronous-message-passing.md) — Implements non-blocking communication channels to coordinate tasks between the Vim editor and the Node.js extension host.
