Skip to content

pedro757/emmet

Repository files navigation

Emmets

Emmet server for neovim completion based on LSP and official emmet library.

See emmet documentation here

emmet-gif

Requirements

  1. nvim-lspconfig Installed
  2. A completion plugin that supports LSP, like:
  3. A Snippet plugin that supports LSP, like:

Install

npm install -g ls_emmet

Configuration

In your neovim config:

local lspconfig = require'lspconfig'
local configs = require'lspconfig.configs'

local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true

if not configs.ls_emmet then
  configs.ls_emmet = {
    default_config = {
      cmd = { 'ls_emmet', '--stdio' };
      filetypes = {
        'html',
        'css',
        'scss',
        'javascriptreact',
        'typescriptreact',
        'haml',
        'xml',
        'xsl',
        'pug',
        'slim',
        'sass',
        'stylus',
        'less',
        'sss',
        'hbs',
        'handlebars',
      };
      root_dir = function(fname)
        return vim.loop.cwd()
      end;
      settings = {};
    };
  }
end

lspconfig.ls_emmet.setup { capabilities = capabilities }

Just type:

table>tr*3>td*2

And it will be expanded to:

<table>
  <tr>
    <td>|</td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td></td>
  </tr>
</table>

Contribuiting

Bug reports, feature suggestions and especially code contributions are welcome. You open a GitHub issue or pull request. Please read this document before opening an issue.

Supported Languages

Markup StyleSheets
HTML CSS
TSX SCSS
JSX SASS
JS STYLUS
XML SSS
XSL LESS
HAML
PUG
SLIM
HBS