Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Duplicate "$" completion for PHP and JavaScript file. :( #87

Closed
maamo888 opened this issue Oct 15, 2018 · 4 comments
Closed

Duplicate "$" completion for PHP and JavaScript file. :( #87

maamo888 opened this issue Oct 15, 2018 · 4 comments

Comments

@maamo888
Copy link

maamo888 commented Oct 15, 2018

Problems summary

(I'm sorry for my poor English.)

Hi, prabirshrestha

First of all, I appreciate vim-lsp, asyncomplete and related great plugins.

Duplicate "$" completion for PHP file. :(

Screenshot

list

1_asyncomplete_list

[NG]done

$$variable2 :(

2_asyncomplete_done

Minimal vimrc (minimal.vimrc)

" plugin (use vim-plug) {{{
call plug#begin('~/.vim/plugged')

Plug 'prabirshrestha/async.vim'
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/vim-lsp'
Plug 'prabirshrestha/asyncomplete-lsp.vim'

call plug#end()
" }}}

" log
let g:asyncomplete_log_file = expand('/tmp/asyncomplete.log')

" [LSP] php-language-server
"
" @see
" https://github.com/prabirshrestha/vim-lsp/wiki/Servers-PHP
augroup LspPHP
  au!
  au User lsp_setup call lsp#register_server({
       \ 'name': 'php-language-server',
       \ 'cmd': {server_info->['php', expand('~/.composer/vendor/felixfbecker/language-server/bin/php-language-server.php')]},
       \ 'whitelist': ['php'],
       \ })
augroup end

example.php

vim -N -u minimal.vimrc example.php

| is cursor.

<?php

$variable1 = "test";
$variable2 = "test";

echo $|

Log (asyncomplete.log)

["core","s:clear_active_sources",1]
["core","remote_insert_enter"]
["core","computing get_active_sources_for_buffer",1]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["",-1,-1],{"lnum":5,"bufnr":1,"col":1,"changedtick":4,"typed":"","filetype":"php","curpos":[0,5,1,0,1],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["",-1,-1],{"lnum":6,"bufnr":1,"col":1,"changedtick":5,"typed":"","filetype":"php","curpos":[0,6,1,0,1],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["e",0,1],{"lnum":6,"bufnr":1,"col":2,"changedtick":6,"typed":"e","filetype":"php","curpos":[0,6,2,0,2],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","completor()","asyncomplete_lsp_php-language-server",{"lnum":6,"bufnr":1,"col":2,"changedtick":6,"typed":"e","filetype":"php","curpos":[0,6,2,0,2],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["ec",0,2],{"lnum":6,"bufnr":1,"col":3,"changedtick":7,"typed":"ec","filetype":"php","curpos":[0,6,3,0,3],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["ech",0,3],{"lnum":6,"bufnr":1,"col":4,"changedtick":8,"typed":"ech","filetype":"php","curpos":[0,6,4,0,4],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["echo",0,4],{"lnum":6,"bufnr":1,"col":5,"changedtick":9,"typed":"echo","filetype":"php","curpos":[0,6,5,0,5],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["",-1,-1],{"lnum":6,"bufnr":1,"col":6,"changedtick":10,"typed":"echo ","filetype":"php","curpos":[0,6,6,0,6],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["",-1,-1],{"lnum":6,"bufnr":1,"col":7,"changedtick":11,"typed":"echo $","filetype":"php","curpos":[0,6,7,0,7],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["v",6,7],{"lnum":6,"bufnr":1,"col":8,"changedtick":12,"typed":"echo $v","filetype":"php","curpos":[0,6,8,0,8],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","completor()","asyncomplete_lsp_php-language-server",{"lnum":6,"bufnr":1,"col":8,"changedtick":12,"typed":"echo $v","filetype":"php","curpos":[0,6,8,0,8],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:python_cm_complete","asyncomplete_lsp_php-language-server",{"lnum":6,"bufnr":1,"col":8,"changedtick":12,"typed":"echo $v","filetype":"php","curpos":[0,6,8,0,8],"filepath":"/Users/maamo888/_Dev/php/example.php"},7,true,0]
["core","s:core_complete"]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["va",6,8],{"lnum":6,"bufnr":1,"col":9,"changedtick":17,"typed":"echo $va","filetype":"php","curpos":[0,6,9,0,9],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","completor()","asyncomplete_lsp_php-language-server",{"lnum":6,"bufnr":1,"col":9,"changedtick":17,"typed":"echo $va","filetype":"php","curpos":[0,6,9,0,9],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:python_cm_complete","asyncomplete_lsp_php-language-server",{"lnum":6,"bufnr":1,"col":9,"changedtick":17,"typed":"echo $va","filetype":"php","curpos":[0,6,9,0,9],"filepath":"/Users/maamo888/_Dev/php/example.php"},7,true,0]
["core","s:core_complete"]
["core","s:remote_refresh","asyncomplete_lsp_php-language-server",["",-1,-1],{"lnum":6,"bufnr":1,"col":18,"changedtick":30,"typed":"echo $$variable2;","filetype":"php","curpos":[0,6,18,0,18],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","completor()","asyncomplete_lsp_php-language-server",{"lnum":6,"bufnr":1,"col":18,"changedtick":30,"typed":"echo $$variable2;","filetype":"php","curpos":[0,6,18,0,18],"filepath":"/Users/maamo888/_Dev/php/example.php"}]
["core","s:python_cm_complete","asyncomplete_lsp_php-language-server",{"lnum":6,"bufnr":1,"col":18,"changedtick":30,"typed":"echo $$variable2;","filetype":"php","curpos":[0,6,18,0,18],"filepath":"/Users/maamo888/_Dev/php/example.php"},18,true,0]
["core","remote_insert_leave"]
@maamo888
Copy link
Author

Similar issue.

autozimu/LanguageClient-neovim#15

@maamo888
Copy link
Author

Additional report.

Duplicate "$" completion for JavaScript file.

Screenshot

type

asyncomplete_js_issue_1_type

selection

Duplicate "$".

asyncomplete_js_issue_2_selection

Preparation

mkdir -p vuesample
cd vuesample
npm install vue
tsc --init

example.js

vim -N -u minimal.vimrc example.js

| is cursor.

import Vue from 'vue';

var data = { a: 1 };
var vm = new Vue({
  el: '#example',
  data: data
});

vm.$e|

Minimal vimrc (minimal.vimrc)

" plugin (use vim-plug) {{{
call plug#begin('~/.vim/plugged')

Plug 'prabirshrestha/async.vim'
Plug 'prabirshrestha/asyncomplete.vim'
Plug 'prabirshrestha/vim-lsp'
Plug 'prabirshrestha/asyncomplete-lsp.vim'

call plug#end()
" }}}

" log
let g:asyncomplete_log_file = expand('/tmp/asyncomplete.log')

"
" [LSP]
" TypeScirpt JavaScript JSX
"
" [install]
" npm i -g typescript-language-server
"
" [command]
" typescript-language-server --stdio
"

if executable('typescript-language-server')
  augroup LspTypeScriptJavaScriptAndJsx
    au!
    au User lsp_setup call lsp#register_server({
      \ 'name': 'typescript-language-server',
      \ 'cmd': { server_info->[&shell, &shellcmdflag, 'typescript-language-server --stdio']},
      \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), 'tsconfig.json'))},
      \ 'whitelist': ['typescript', 'javascript', 'javascript.jsx']
      \ })

    " omnifunc
    autocmd FileType typescript,javascript,javascript.jsx setlocal omnifunc=lsp#complete
    " map
    au FileType typescript,javascript,javascript.jsx nnoremap <buffer><silent> gd :<C-u>LspDefinition<CR>
    au FileType typescript,javascript,javascript.jsx nnoremap <buffer><silent> gD :<C-u>LspReferences<CR>
    au FileType typescript,javascript,javascript.jsx nnoremap <buffer><silent> gs :<C-u>LspDocumentSymbol<CR>
    au FileType typescript,javascript,javascript.jsx nnoremap <buffer><silent> gS :<C-u>LspWorkspaceSymbol<CR>
    au FileType typescript,javascript,javascript.jsx nnoremap <buffer><silent> gQ :<C-u>LspDocumentFormat<CR>
    au FileType typescript,javascript,javascript.jsx vnoremap <buffer><silent> gQ :LspDocumentRangeFormat<CR>
    au FileType typescript,javascript,javascript.jsx nnoremap <buffer><silent> K :<C-u>LspHover<CR>
    au FileType typescript,javascript,javascript.jsx nnoremap <buffer><silent> <F1> :<C-u>LspImplementation<CR>
    au FileType typescript,javascript,javascript.jsx nnoremap <buffer><silent> <F2> :<C-u>LspRename<CR>
  augroup end
endif

@maamo888 maamo888 changed the title Duplicate "$" completion for PHP file. :( Duplicate "$" completion for PHP and JavaScript file. :( Oct 30, 2018
@prabirshrestha
Copy link
Owner

Can you give v2 branch a try. It is stil lat an early phase so not all the features have been ported yet.

@prabirshrestha
Copy link
Owner

v2 is now merged in master. Please update to latest and give it a try again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants