Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: luckasRanarison/tailwind-tools.nvim
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: Eingin/tailwind-tools.nvim
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 6 commits
  • 56 files changed
  • 1 contributor

Commits on Mar 5, 2026

  1. refactor: require Neovim 0.11, drop nvim-lspconfig dependency

    Use the native vim.lsp.config/vim.lsp.enable API for server setup
    instead of going through nvim-lspconfig. This is the recommended
    approach since 0.11 and removes a runtime dependency.
    
    Along the way, clean up several things that the 0.11 floor makes
    possible or that were broken:
    
    - Remove compat shim for vim.lsp.get_active_clients (deprecated)
    - Remove version guard around parser:parse(true) and the redundant
      { all = true } arg to iter_captures (both defaults since 0.10+)
    - Replace vim.loop with vim.uv in tests
    - Move namespace/augroup IDs from vim.g into the Lua state module
      to avoid msgpack serialization on every access
    - Fix highlight cache check in utils.set_hl_from (nvim_get_hl
      returns a dict, not an array, so the guard was a no-op)
    - Rewrite color debounce with a single persistent vim.uv timer
      instead of creating and leaking timers via vim.defer_fn
    - Register conceal autocmds once at setup and gate on state flag
      instead of re-registering on every enable() call
    - Add vim.validate checks on user config in setup()
    - Use ipairs for array iteration throughout
    - Remove nvim-lspconfig from health check
    - Fix tresitter -> treesitter typo in classes.lua
    Eingin committed Mar 5, 2026
    Configuration menu
    Copy the full SHA
    6b542bf View commit details
    Browse the repository at this point in the history
  2. feat: handle LSP server notifications for project lifecycle and warnings

    Listen for custom notifications from tailwindcss-language-server:
    - @/tailwindCSS/projectInitialized: fire color requests when project is ready
    - @/tailwindCSS/projectReset / projectsDestroyed: clear state on reload
    - @/tailwindCSS/clearColors: clear stale extmarks on settings change
    - @/tailwindCSS/warn: surface config errors via vim.notify
    
    Guard on_attach color request behind project.initialized to fix race
    condition where colors were requested before the server was ready.
    Reset project state on LspDetach for clean crash/restart handling.
    Eingin committed Mar 5, 2026
    Configuration menu
    Copy the full SHA
    4f1921c View commit details
    Browse the repository at this point in the history
  3. fix: test version assertion and development commands

    Replace exact version match in LSP tests with major version prefix
    check. The test verifies the correct project type (v3 vs v4) was
    detected, not an exact patch version.
    
    Fix CLAUDE.md test commands: add init='tests/init.lua' to plenary
    opts so child processes load plugins (parsers become discoverable).
    Add prerequisite install steps for npm deps and treesitter parsers.
    Eingin committed Mar 5, 2026
    Configuration menu
    Copy the full SHA
    df13ef1 View commit details
    Browse the repository at this point in the history
  4. docs: add fork changes section to README

    Document Neovim 0.11 modernization, LSP notification handlers,
    and bug fixes specific to this fork.
    Eingin committed Mar 5, 2026
    Configuration menu
    Copy the full SHA
    930bbd6 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2026

  1. feat: support multiple Tailwind projects per session

    Upstream keeps one global project state. In a monorepo with more than one
    Tailwind config, this state is wrong. The first client of the session replies
    for every buffer, and the notifications of one project clear the state of
    another project.
    
    A project identity is now the client id together with the config path that the
    server reports. The plugin asks for `@/tailwindCSS/projectDetails`. It records
    each project under its own config path. It then resolves a buffer to a client,
    and the client to a project. Each server notification applies only to the
    client that sent it, and to the buffers of that client.
    
    A request goes to the client attached to the buffer. If more than one client is
    attached, the plugin selects the deepest root. The plugin never falls back to
    an arbitrary client, because a client with a root outside the file describes a
    different project.
    
    The plugin also groups the root markers into tiers. The closest Tailwind config
    now has precedence over `package.json`.
    
    Other changes:
    
    - Require Neovim 0.12 and drop the `nvim-lspconfig` dependency. Server setup
      uses `vim.lsp.config`, and color hints use the native
      `vim.lsp.document_color`. Conceal mode keeps its own renderer, because the
      native renderer draws the whole buffer.
    - Cancel each in-flight `textDocument/documentColor` request before the plugin
      sends a new one. A generation token stops a superseded callback, so that
      callback draws nothing.
    - Clear the color extmarks of every tracked buffer, and not only of the buffers
      that received conceals.
    - Resolve the modules of the remote plugin with the resolver of Node. Hoisted
      layouts, nested layouts and pnpm layouts now behave like the tools of the
      project. Each RPC function replies with one result shape that names the
      failure.
    - Pin the Telescope picker to the project of the buffer that opened it. At
      preview time, the current buffer belongs to Telescope.
    - Resolve the positions of a pattern match with one shared offset table and a
      binary search. The plugin no longer builds a table for each match. A range
      that ends on the last line of the buffer now reports the correct start line.
    - Apply the count of `<c-a>`, `<c-x>` and the class motions as one step.
    - Add tests for monorepos, the color lifecycle, offsets, counts and filetypes.
    Eingin committed Aug 15, 2026
    Configuration menu
    Copy the full SHA
    70edf6d View commit details
    Browse the repository at this point in the history
  2. docs: generate the help file for Neovim 0.12

    The help file was 15 months old. It still told the reader to configure the
    server with `nvim-lspconfig`, which this plugin no longer uses.
    
    GitHub Actions does not run on this fork, so the `Docs` workflow cannot
    generate the file. This commit holds the output of panvimdoc for the current
    README.
    
    The workflow now declares `NVIM v0.12.0`, which is the version that the plugin
    requires.
    Eingin committed Aug 15, 2026
    Configuration menu
    Copy the full SHA
    8ffceb0 View commit details
    Browse the repository at this point in the history
Loading