1. 10

Hey y’all,

I’m excited to share my new (and first) Neovim plugin: tsc.nvim! 🚀

This plugin brings asynchronous project-wide TypeScript type-checking to Neovim, providing a seamless type-checking experience for TypeScript developers. No longer do you have to wait for the build in a separate terminal to know about type errors in your code beyond your current buffer(s).

Here are some key features of tsc.nvim:

🚀 Asynchronous type-checking: tsc.nvim runs tsc asynchronously, allowing you to edit your code while the plugin checks for errors in the background. 🔍 Quickfix list integration: Errors are displayed in the quickfix list, simplifying navigation through issues in your code. 🌟 User-friendly notifications: Get clear, informative messages about the type-checking status and results. 🛠️ Easy setup: Quickly set up and configure tsc.nvim to suit your workflow To get started, simply install the plugin using your favorite plugin manager, such as vim-plug or packer.nvim. You can find detailed installation instructions in the README.

For an enhanced UI/UX experience, it is recommended to install the nvim-notify plugin as well. This is an optional dependency, and tsc.nvim will work without it.

I’d love to hear your feedback and suggestions! Please feel free to open issues or submit pull requests on the GitHub repository.

    1. 2

      Can you share why you think I should use this instead of the TypeScript language server?

      1. 2

        Hi there! Great question and as jitl pointed out tsserver is great for type-checking and reporting errors/warnings for your opened buffers. However, it doesn’t have robust support for project-wide diagnostics (at least that I’ve found), which means it may fall short when you want to see how a change affects your entire codebase. That’s where tsc.nvim comes in, providing an efficient solution for project-wide, async type-checking diagnostics.

      2. 2

        The language server only checks open files. This checks the whole project.

    2. 2
      1. 2

        Thanks for this - my markdown links didn’t copy over 🤦‍♂️