deoplete.nvim의 소스를 만들어 보았습니다.

10624 단어 neovimVimdeoplete

Summary



다음과 같은 느낌으로 자동 완성하고 싶습니다.
ap를 입력하면 appleba를 입력하면 bananach를 입력하면 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과 소스 내부를 자세히

좋은 웹페이지 즐겨찾기