evesdropper / luasnip-latex-snippets.nvim

A set of preconfigured snippets for LaTeX for the snippet engine LuaSnip.
https://evesdropper.dev/files/luasnip/
MIT License
67 stars 8 forks source link

Some snippets don't work like expected #7

Open 7ijme opened 1 month ago

7ijme commented 1 month ago

Issues

First of all, the mk snippet doesn't show up for some reason.

This is another small irritation I have, the date is more important than displaymath.

Then the matrix snippet shows up. However, when I add dimensions it doesnt work anymore..

Config


return {
    "VonHeikemen/lsp-zero.nvim",
    branch = "v1.x",
    dependencies = {
        -- LSP Support
        "neovim/nvim-lspconfig", -- Required
        "williamboman/mason.nvim", -- Optional
        "williamboman/mason-lspconfig.nvim", -- Optional
        "numToStr/prettierrc.nvim",

        -- Autocompletion
        "hrsh7th/nvim-cmp", -- Required
        "hrsh7th/cmp-nvim-lsp", -- Required
        "hrsh7th/cmp-buffer", -- Optional
        "hrsh7th/cmp-path", -- Optional
        "saadparwaiz1/cmp_luasnip", -- Optional
        "evesdropper/luasnip-latex-snippets.nvim",
        "hrsh7th/cmp-nvim-lua", -- Optional

        -- Snippets
        "L3MON4D3/LuaSnip", -- Required
        "rafamadriz/friendly-snippets", -- Optional
    },

    config = function()
        local lsp = require("lsp-zero")

        lsp.preset("recommended")

        lsp.ensure_installed({
            "tsserver",
            "rust_analyzer",
            "lua_ls",
            "emmet_ls",
        })

        lsp.configure("lua_ls", {
            settings = {
                Lua = {
                    diagnostics = {
                        -- Get the language server to recognize the `vim` global
                        globals = { "vim" },
                    },
                },
            },
        })

        lsp.configure("ltex", {
            settings = {
                ltex = {
                    language = "auto",
                },
            },
        })

        local cmp = require("cmp")
        local cmp_select = { behavior = cmp.SelectBehavior.Select }
        local cmp_mappings = lsp.defaults.cmp_mappings({
            ["<C-p>"] = cmp.mapping.select_prev_item(cmp_select),
            ["<C-n>"] = cmp.mapping.select_next_item(cmp_select),
            ["<C-y>"] = cmp.mapping.confirm({ select = true }),
            ["<C-Space>"] = cmp.mapping.complete(),
        })

        local cmp_autopairs = require("nvim-autopairs.completion.cmp")
        cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())

        cmp_mappings["<Tab>"] = nil
        cmp_mappings["<S-Tab>"] = nil

        lsp.setup_nvim_cmp({
            mapping = cmp_mappings,
        })

        lsp.set_preferences({
            suggest_lsp_servers = true,
            sign_icons = {
                error = "E",
                warn = "W",
                hint = "H",
                info = "I",
            },
        })

        lsp.on_attach(function(client, bufnr)
            local opts = { buffer = bufnr, remap = false }

            vim.keymap.set("n", "gd", function()
                vim.lsp.buf.definition()
            end, opts)
            vim.keymap.set("n", "K", function()
                vim.lsp.buf.hover()
            end, opts)
            vim.keymap.set("n", "<leader>vws", function()
                vim.lsp.buf.workspace_symbol()
            end, opts)
            vim.keymap.set("n", "<leader>vd", function()
                vim.diagnostic.open_float()
            end, opts)
            vim.keymap.set("n", "[d", function()
                vim.diagnostic.goto_next()
            end, opts)
            vim.keymap.set("n", "]d", function()
                vim.diagnostic.goto_prev()
            end, opts)
            vim.keymap.set("n", "<leader>ca", function()
                vim.lsp.buf.code_action()
            end, opts)
            vim.keymap.set("n", "<leader>vrr", function()
                vim.lsp.buf.references()
            end, opts)
            vim.keymap.set("n", "<F2>", function()
                vim.lsp.buf.rename()
            end, opts)
            -- show suggestions on ctrl Space

            --vim.keymap.set("i", "<leader>h", function() vim.lsp.buf.signature_help() end, opts)
        end)

        vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
            virtual_text = true,
            signs = true,
            update_in_insert = true,
            underline = true,
            severity_sort = true,
            float = true,
        })

            --

        require("mason").setup()

        lsp.setup()
    end,
}```
evesdropper commented 1 month ago

The mk snippet is an autosnippet, so by default it isn't included in LSP.

The other two issues likely lie in using friendly-snippets or maybe LSP snippets for LaTeX. I don't have a date snippet and matrix snippet from this plugin is a regex snippet so it shouldn't show up on LSP.