vim-jp/vim-vimlparser

parse emoji error

iamcco opened this issue · 4 comments

t.vim

let test = "🐥"

node vimparser.js --neovim t.vim

tyru commented

What is the error message?

error output

/Users/aioiyuuko/my/vim-language-server/lib/vimparser.js:158
      return encodeURIComponent(obj).replace(/%../g, ' ').length;
             ^

URIError: URI malformed
    at encodeURIComponent (<anonymous>)
    at viml_len (/Users/aioiyuuko/my/vim-language-server/lib/vimparser.js:158:14)
    at StringReader.__init__ (/Users/aioiyuuko/my/vim-language-server/lib/vimparser.js:3764:20)
    at new StringReader (/Users/aioiyuuko/my/vim-language-server/lib/vimparser.js:3751:41)
    at main (/Users/aioiyuuko/my/vim-language-server/lib/vimparser.js:20:13)
    at Object.<anonymous> (/Users/aioiyuuko/my/vim-language-server/lib/vimparser.js:5639:3)
    at Module._compile (internal/modules/cjs/loader.js:799:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:810:10)
    at Module.load (internal/modules/cjs/loader.js:666:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:606:12)

Just for reference: vint parses this fine already:

scriptencoding utf8

let test = '🐥'
mattn commented

Yes, it is caused by using surrogate pair with encodeURIComponent.