deoplete.nvim의 소스를 만들어 보았습니다.
Summary
다음과 같은 느낌으로 자동 완성하고 싶습니다.
ap
를 입력하면 apple
ba
를 입력하면 banana
ch
를 입력하면 cherry
필요한 것
deoplete.nvim
# dein.toml の記入例
[[plugins]]
repo = 'Shougo/deoplete.nvim'
hook_add = 'let g:deoplete#enable_at_startup = 1'
소스 만들기
소스의 위치
$XDG_CONFIG_HOME/nvim/rplugin/python3/deoplete/sources
우선 폴더 만들기
cd $XDG_CONFIG_HOME/nvim
mkdir -p rplugin/python3/deoplete/sources
소스(파이썬 파일) 만들기
cd rplugin/python3/deoplete/sources
vim callmekohei.py
callmekohei.py
의 내용(만지는 곳은 3곳만!)from .base import Base
class Source(Base):
def __init__(self, vim):
super().__init__(vim)
self.name = 'callmekohei' # なまえ
self.mark = '[kohei]' # mark のなまえ
def gather_candidates(self, context):
return ["apple","banana","cherry"] # ポップアップのリスト
init.vim
에 기입filetype plugin indent on
앞에 쓰기set runtimepath+=$XDG_CONFIG_HOME/nvim/rplugin
filetype plugin indent on
syntax enable
하고 싶은 일 2
fruits.
를 입력하면 apple, banana, cherry
출처
import re
from .base import Base
class Source(Base):
def __init__(self, vim):
super().__init__(vim)
self.name = 'callmekohei'
self.mark = '[kohei]'
self.input_pattern = (r'^fruits\.') # input_pattern で fruits. を指定する
def get_complete_position(self, context): # input_pattern を使うときは必須
m = re.search(r'\w*$', context['input'])
return m.start() if m else -1
def gather_candidates(self, context):
return ["apple","banana","cherry"]
최소 설정
set runtimepath+=~/.config/nvim/rplugin
set runtimepath+=~/.config/nvim/plugins/deoplete.nvim
let g:deoplete#enable_at_startup = 1
filetype plugin indent on
syntax enable
하고 싶은 일 3
apple
를 선택하면 apple
출처
from .base import Base
class Source(Base):
def __init__(self, vim):
super().__init__(vim)
self.name = 'callmekohei'
self.mark = '[kohei]'
def gather_candidates(self, context):
return [
{
'word' : "apple"
, 'abbr' : "apple : red, round and delicious!"
, 'info' : "Apple is delicious"
, 'kind' : "Food"
, 'dup' : 1
}
]
참조
도움말
:help deoplete
CREATE SOURCE *deoplete-create-source*
To create source, you should read default sources implementation in
rplugin/python3/deoplete/source/*.py.
The files are automatically loaded and deoplete creates new Source class
object.
Source class must extend Base class in ".base".
Note: The sources must be created by Python3 language.
Note: If you call Vim functions in your source, it is not asynchronous.
차세대 완성 프레임 워크 deoplete.nvim과 소스 내부를 자세히
Reference
이 문제에 관하여(deoplete.nvim의 소스를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/callmekohei/items/5442483b5f34e1d2f240텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)