Skip to content

dastanaron/prisma.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

prisma.nvim

A lightweight Prisma ORM integration for Neovim with native LSP support, syntax highlighting, and auto-formatting.

Features

  • 🌟 Automatic Prisma Language Server installation via Mason

  • 🎨 Treesitter highlighting for .prisma files

  • ⚡ Native LSP integration with nvim-lspconfig

  • ✨ Auto-formatting on save

  • 🔧 Customizable LSP settings

  • Requirements

  • Neovim 0.8+

  • Mason.nvim

  • nvim-lspconfig

  • nvim-treesitter

Installation

Packer.nvim

use {
    'dastanaron/prisma.nvim',
    requires = {
        'williamboman/mason.nvim',
        'neovim/nvim-lspconfig',
        'nvim-treesitter/nvim-treesitter'
    },
    config = function()
        require('prisma').setup()
    end
}

Lazy.nvim

{
    'dastanaron/prisma.nvim',
    event = "VeryLazy",
    dependencies = {
        'williamboman/mason.nvim',
        'neovim/nvim-lspconfig',
        'nvim-treesitter/nvim-treesitter'
    },
    config = function()
        require('prisma').setup()
    end
}

Configuration

Default Setup

require('prisma').setup({
    auto_format = true,  -- Enable format-on-save
    lsp = {
        capabilities = require('cmp_nvim_lsp').default_capabilities(),
        settings = {
            -- LSP server specific settings
        },
        on_attach = function(client, bufnr)
            -- Custom LSP attach handler
        end
    }
})

Using with NvChad

  {
      'dastanaron/prisma.nvim',
      event = "VeryLazy",
      dependencies = {
          'williamboman/mason.nvim',
          'neovim/nvim-lspconfig',
          'nvim-treesitter/nvim-treesitter'
      },
      config = function()
        local nvlsp = require "nvchad.configs.lspconfig"
        require('prisma').setup({
        lsp = {
          on_attach = function(client, bufnr)
              nvlsp.on_attach(client, bufnr)
          end,
          capabilities = nvlsp.capabilities,
          on_init = nvlsp.on_init,
        }
      })
      end,
  }

Usage

Basic Workflow

  1. Open any .prisma file
  2. The plugin will automatically:
    • Install Prisma Language Server (if missing)
    • Set up Treesitter parser
    • Attach LSP functionality

LSP Commands

" Format current buffer
:LspFormat

" Show schema diagnostics
:LspInfo

Custom Keybindings

Add to your on_attach handler:

require('prisma').setup({
    lsp = {
        on_attach = function(client, bufnr)
            local opts = { buffer = bufnr }
            vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
            vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
        end
    }
})

Customization

Disable Auto-format

require('prisma').setup({ auto_format = false })

Custom LSP Settings

require('prisma').setup({
    lsp = {
        settings = {
            prisma = {
                validate = true,
                completions = {
                    enable = true
                }
            }
        }
    }
})

Troubleshooting

Manual LSP Installation

:MasonInstall prisma-language-server

Manual Treesitter Install

:TSInstall prisma

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages