コード例 #1
0
ファイル: deoplete_go.py プロジェクト: Vourhey/.dotfiles
    def on_init(self, context):
        vars = context['vars']

        self.gocode_binary = \
            expand(vars.get('deoplete#sources#go#gocode_binary', ''))
        self.package_dot = \
            vars.get('deoplete#sources#go#package_dot', False)
        self.sort_class = \
            vars.get('deoplete#sources#go#sort_class', [])
        self.pointer = \
            vars.get('deoplete#sources#go#pointer', False)
        self.auto_goos = \
            vars.get('deoplete#sources#go#auto_goos', False)
        self.goos = \
            vars.get('deoplete#sources#go#goos', '')
        self.goarch = \
            vars.get('deoplete#sources#go#goarch', '')
        self.sock = \
            vars.get('deoplete#sources#go#gocode_sock', '')
        self.cgo = \
            vars.get('deoplete#sources#go#cgo', False)
        self.source_importer = \
            vars.get('deoplete#sources#go#source_importer', False)
        self.builtin_objects = \
            vars.get('deoplete#sources#go#builtin_objects', False)
        self.unimported_packages = \
            vars.get('deoplete#sources#go#unimported_packages', False)

        self.loaded_gocode_binary = False
        self.complete_pos = re.compile(r'\w*$|(?<=")[./\-\w]*$')

        if self.pointer:
            self.complete_pos = re.compile(self.complete_pos.pattern + r'|\*$')
            self.input_pattern += r'|\*'

        if self.cgo:
            load_external_module(__file__, 'clang')
            import clang.cindex as clang

            self.libclang_path = \
                vars.get('deoplete#sources#go#cgo#libclang_path', '')
            if self.libclang_path == '':
                return

            self.cgo_options = {
                'std': vars.get('deoplete#sources#go#cgo#std', 'c11'),
                'sort_algo': vars.get('deoplete#sources#cgo#sort_algo', None)
            }

            if not clang.Config.loaded and \
                    clang.Config.library_path != self.libclang_path:
                clang.Config.set_library_file(self.libclang_path)
                clang.Config.set_compatibility_check(False)

            # Set 'C.' complete pattern
            self.cgo_complete_pattern = re.compile(r'[^\W\d]*C\.')
            # Create clang.cindex.Index database
            self.index = clang.Index.create(0)
            # initialize in-memory cache
            self.cgo_cache, self.cgo_inline_source = dict(), None
コード例 #2
0
ファイル: deoplete_go.py プロジェクト: ninnemana/dotfiles
    def on_init(self, context):
        vars = context['vars']

        self.gocode_binary = \
            expand(vars.get('deoplete#sources#go#gocode_binary', ''))
        self.package_dot = \
            vars.get('deoplete#sources#go#package_dot', False)
        self.sort_class = \
            vars.get('deoplete#sources#go#sort_class', [])
        self.pointer = \
            vars.get('deoplete#sources#go#pointer', False)
        self.auto_goos = \
            vars.get('deoplete#sources#go#auto_goos', False)
        self.goos = \
            vars.get('deoplete#sources#go#goos', '')
        self.goarch = \
            vars.get('deoplete#sources#go#goarch', '')
        self.sock = \
            vars.get('deoplete#sources#go#gocode_sock', '')
        self.cgo = \
            vars.get('deoplete#sources#go#cgo', False)
        self.source_importer = \
            vars.get('deoplete#sources#go#source_importer', False)
        self.builtin_objects = \
            vars.get('deoplete#sources#go#builtin_objects', False)

        self.loaded_gocode_binary = False
        self.complete_pos = re.compile(r'\w*$|(?<=")[./\-\w]*$')

        if self.pointer:
            self.complete_pos = re.compile(self.complete_pos.pattern + r'|\*$')
            self.input_pattern += r'|\*'

        if self.cgo:
            load_external_module(__file__, 'clang')
            import clang.cindex as clang

            self.libclang_path = \
                vars.get('deoplete#sources#go#cgo#libclang_path', '')
            if self.libclang_path == '':
                return

            self.cgo_options = {
                'std':
                    vars.get('deoplete#sources#go#cgo#std', 'c11'),
                'sort_algo':
                    vars.get('deoplete#sources#cgo#sort_algo', None)
            }

            if not clang.Config.loaded and \
                    clang.Config.library_path != self.libclang_path:
                clang.Config.set_library_file(self.libclang_path)
                clang.Config.set_compatibility_check(False)

            # Set 'C.' complete pattern
            self.cgo_complete_pattern = re.compile(r'[^\W\d]*C\.')
            # Create clang.cindex.Index database
            self.index = clang.Index.create(0)
            # initialize in-memory cache
            self.cgo_cache, self.cgo_inline_source = dict(), None
コード例 #3
0
ファイル: deoplete_go.py プロジェクト: escribano/deoplete-go
    def __init__(self, vim):
        Base.__init__(self, vim)

        self.name = 'go'
        self.mark = '[Go]'
        self.filetypes = ['go']
        self.input_pattern = r'(?:\b[^\W\d]\w*|[\]\)])\.(?:[^\W\d]\w*)?'
        self.rank = 500

        self.complete_pos = None

        self.gocode_binary = \
            self.vim.vars['deoplete#sources#go#gocode_binary']
        self.package_dot = \
            self.vim.vars['deoplete#sources#go#package_dot']
        self.sort_class = \
            self.vim.vars['deoplete#sources#go#sort_class']
        self.pointer = \
            self.vim.vars['deoplete#sources#go#pointer']
        self.use_cache = \
            self.vim.vars['deoplete#sources#go#use_cache']
        self.json_directory = \
            self.vim.vars['deoplete#sources#go#json_directory']
        self.debug_enabled = \
            self.vim.vars.get('deoplete#sources#go#debug', 0)
        self.use_on_event = \
            self.vim.vars['deoplete#sources#go#on_event']
        self.cgo = \
            self.vim.vars['deoplete#sources#go#cgo']

        if self.cgo:
            self.complete_pos = re.compile(r'\w*$|(?<=")[./\-\w]*$')
            load_external_module(__file__, 'clang')
            import clang.cindex as clang

            self.libclang_path = \
                self.vim.vars.get('deoplete#sources#go#cgo#libclang_path', '')
            self.cgo_std = \
                ['-std',
                 self.vim.vars.get('deoplete#sources#go#cgo#std', 'c11'),
                 '-x', 'c']

            if not clang.Config.loaded:
                clang.Config.set_library_file(self.libclang_path)
                clang.Config.set_compatibility_check(False)

            self.index = clang.Index.create(0)

            self.cgo_cache, self.cgo_headers = dict(), None
        else:
            self.complete_pos = re.compile(r'\w*$|(?<=")[./\-\w]*$')

        if self.pointer:
            self.complete_pos = re.compile(self.complete_pos.pattern + r'|\*$')
コード例 #4
0
ファイル: deoplete_go.py プロジェクト: shazow/deoplete-go
    def __init__(self, vim):
        Base.__init__(self, vim)

        self.name = 'go'
        self.mark = '[Go]'
        self.filetypes = ['go']
        self.input_pattern = r'(?:\b[^\W\d]\w*|[\]\)])\.(?:[^\W\d]\w*)?'
        self.rank = 500

        self.complete_pos = None

        self.gocode_binary = \
            self.vim.vars['deoplete#sources#go#gocode_binary']
        self.package_dot = \
            self.vim.vars['deoplete#sources#go#package_dot']
        self.sort_class = \
            self.vim.vars['deoplete#sources#go#sort_class']
        self.pointer = \
            self.vim.vars['deoplete#sources#go#pointer']
        self.use_cache = \
            self.vim.vars['deoplete#sources#go#use_cache']
        self.json_directory = \
            self.vim.vars['deoplete#sources#go#json_directory']
        self.debug_enabled = \
            self.vim.vars.get('deoplete#sources#go#debug', 0)
        self.use_on_event = \
            self.vim.vars['deoplete#sources#go#on_event']
        self.cgo = \
            self.vim.vars['deoplete#sources#go#cgo']

        if self.cgo:
            self.complete_pos = re.compile(r'\w*$|(?<=")[./\-\w]*$')
            load_external_module(__file__, 'clang')
            import clang.cindex as clang

            self.libclang_path = \
                self.vim.vars.get('deoplete#sources#go#cgo#libclang_path', '')
            self.cgo_std = \
                ['-std',
                 self.vim.vars.get('deoplete#sources#go#cgo#std', 'c11'),
                 '-x', 'c']

            if not clang.Config.loaded:
                clang.Config.set_library_file(self.libclang_path)
                clang.Config.set_compatibility_check(False)

            self.index = clang.Index.create(0)

            self.cgo_cache, self.cgo_headers = dict(), None
        else:
            self.complete_pos = re.compile(r'\w*$|(?<=")[./\-\w]*$')

        if self.pointer:
            self.complete_pos = re.compile(self.complete_pos.pattern + r'|\*$')
コード例 #5
0
import os
import re

from .base import Base
from deoplete.util import load_external_module

current = __file__

load_external_module(current, 'clang')
import clang.cindex as clang

load_external_module(current, 'sources/deoplete_clang')
from clang_data import index_h


class Source(Base):

    def __init__(self, vim):
        Base.__init__(self, vim)

        self.name = 'clang'
        self.mark = '[clang]'
        self.filetypes = ['c', 'cpp', 'objc', 'objcpp']
        self.rank = 500
        # TODO(zchee): not need "r'[a-zA-Z_]\w*::\w*'" in C language
        self.input_pattern = (r'[^. \t0-9]\.\w*|'
                              r'[^. \t0-9]->\w*|'
                              r'[a-zA-Z_]\w*::\w*')

    def on_init(self, context):
        vars = context['vars']
コード例 #6
0
#!/usr/bin/env
# Standard Library
import os
import re

# Third Party
import bibtexparser

# This Module
from deoplete.logger import getLogger
from deoplete.util import load_external_module

# Local Folder
from .base import Base

load_external_module(__file__, "sources/deoplete_biblatex")

logger = getLogger(__name__)


# MY_CODES = {"lion:": "test", "tandem:": "test"}


class CustomizationError(Exception):
    pass


def bibtexparser_customizations(record):
    record = bibtexparser.customization.author(record)
    record = bibtexparser.customization.editor(record)
    try:
コード例 #7
0
ファイル: icons.py プロジェクト: Trulsaa/deoplete-sap-icon
# Copyright (c) 2017 Filip Szymański. All rights reserved.
# Use of this source code is governed by an MIT license that can be
# found in the LICENSE file.

import re

from .base import Base
from deoplete.util import load_external_module

load_external_module(__file__, 'sources/icons')
from icon_codes import ICON_CODES


class Source(Base):
    def __init__(self, vim):
        super().__init__(vim)

        self.__pattern = re.compile(r'sap-icon')

        self.filetypes = ['javascript', 'xml', 'html']
        self.mark = '[icons]'
        self.matchers = ['matcher_length', 'matcher_full_fuzzy']
        self.name = 'icons'

    def gather_candidates(self, context):
        return [{'word': k, 'kind': v} for (k, v) in ICON_CODES.items()]

    def get_complete_position(self, context):
        match = self.__pattern.search(context['input'])
        return match.start() if match is not None else -1
コード例 #8
0
ファイル: deoplete_go.py プロジェクト: nhooyr/deoplete-go
    def on_init(self, context):
        vars = context['vars']

        self.gocode_binary = vars.get(
            'deoplete#sources#go#gocode_binary',
            ''
        )
        self.package_dot = vars.get(
            'deoplete#sources#go#package_dot',
            False
        )
        self.sort_class = vars.get(
            'deoplete#sources#go#sort_class',
            []
        )
        self.pointer = vars.get(
            'deoplete#sources#go#pointer',
            False
        )
        self.use_cache = vars.get(
            'deoplete#sources#go#use_cache',
            False
        )
        self.json_directory = vars.get(
            'deoplete#sources#go#json_directory',
            ''
        )
        self.use_on_event = vars.get(
            'deoplete#sources#go#on_event',
            False
        )
        self.cgo = vars.get(
            'deoplete#sources#go#cgo',
            False
        )
        self.debug_enabled = vars.get(
            'deoplete#sources#go#debug',
            False
        )

        self.complete_pos = re.compile(r'\w*$|(?<=")[./\-\w]*$')

        if self.pointer:
            self.complete_pos = re.compile(self.complete_pos.pattern + r'|\*$')

        if self.cgo:
            load_external_module(__file__, 'clang')
            import clang.cindex as clang

            self.libclang_path = vars.get(
                'deoplete#sources#go#cgo#libclang_path',
                ''
            )
            if self.libclang_path == '':
                return
            self.std = vars.get('deoplete#sources#go#cgo#std', 'c11')

            if not clang.Config.loaded or \
                    clang.Config.library_path is not None and \
                    clang.Config.library_path != self.libclang_path:
                clang.Config.set_library_file(self.libclang_path)
                clang.Config.set_compatibility_check(False)

            self.cgo_complete_pattern = re.compile(r'[^\W\d]*C\.')
            # Create clang.cindex.Index database
            self.index = clang.Index.create(0)
            # for inmemory-cache
            self.cgo_cache, self.cgo_inline_source = dict(), None
コード例 #9
0
    def on_init(self, context):
        vars = context['vars']

        self.gocode_binary = \
            expand(vars.get('deoplete#sources#go#gocode_binary', ''))
        self.package_dot = \
            vars.get('deoplete#sources#go#package_dot', False)
        self.sort_class = \
            vars.get('deoplete#sources#go#sort_class', [])
        self.pointer = \
            vars.get('deoplete#sources#go#pointer', False)
        self.auto_goos = \
            vars.get('deoplete#sources#go#auto_goos', False)
        self.goos = \
            vars.get('deoplete#sources#go#goos', '')
        self.goarch = \
            vars.get('deoplete#sources#go#goarch', '')
        self.sock = \
            vars.get('deoplete#sources#go#gocode_sock', '')
        self.use_cache = \
            vars.get('deoplete#sources#go#use_cache', False)
        self.json_directory = \
            expand(vars.get('deoplete#sources#go#json_directory', ''))
        self.use_on_event = \
            vars.get('deoplete#sources#go#on_event', False)
        self.cgo = \
            vars.get('deoplete#sources#go#cgo', False)

        self.loaded_gocode_binary = False
        self.complete_pos = re.compile(r'\w*$|(?<=")[./\-\w]*$')

        if self.pointer:
            self.complete_pos = re.compile(self.complete_pos.pattern + r'|\*$')

        if self.cgo:
            load_external_module(__file__, 'clang')
            import clang.cindex as clang

            self.libclang_path = \
                vars.get('deoplete#sources#go#cgo#libclang_path', '')
            if self.libclang_path == '':
                return

            self.cgo_options = {
                'std':
                    vars.get('deoplete#sources#go#cgo#std', 'c11'),
                'sort_algo':
                    vars.get('deoplete#sources#cgo#sort_algo', None)
            }

            if not clang.Config.loaded and \
                    clang.Config.library_path != self.libclang_path:
                clang.Config.set_library_file(self.libclang_path)
                clang.Config.set_compatibility_check(False)

            # Set 'C.' complete pattern
            self.cgo_complete_pattern = re.compile(r'[^\W\d]*C\.')
            # Create clang.cindex.Index database
            self.index = clang.Index.create(0)
            # initialize in-memory cache
            self.cgo_cache, self.cgo_inline_source = dict(), None

        # Dummy execute the gocode for gocode's in-memory cache
        try:
            context['complete_position'] = \
                self.vim.current.window.cursor[1]
            self.get_complete_result(self.buffer, context, kill=True)
            self.debug('called on_init')
        except Exception:
            # Ignore the error
            pass
コード例 #10
0
from .base import Base
from deoplete.util import load_external_module

load_external_module(__file__, "sources")
from emoji import EMOJI_LIST


class Source(Base):
    def __init__(self, vim):
        Base.__init__(self, vim)

        self.rank = 90
        self.name = "emoji"
        self.description = "complete emoji based on the emoji code "
        self.mark = "[emoji]"
        self.filetypes = []

    def on_init(self, context):
        self.executable = context["vars"].get(
            "deoplete#sources#emoji#executable", ["emoji"])

    def gather_candidates(self, context):
        return EMOJI_LIST
コード例 #11
0
ファイル: docker.py プロジェクト: umaumax/deoplete-docker
# Copyright 2016 Koichi Shiraishi. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

import re
import threading

from .base import Base
from deoplete.util import load_external_module
load_external_module(__file__, 'urllib3')
load_external_module(__file__, 'dockerhub')
load_external_module(__file__, 'certifi')
from dockerhub.dockerhub import DockerHub

KEYWORD = [
    'ADD', 'ARG', 'CMD', 'COPY', 'ENTRYPOINT', 'ENV', 'EXPOSE', 'FROM',
    'HEALTHCHECK', 'LABEL', 'MAINTAINER', 'RUN', 'SHELL', 'STOPSIGNAL', 'USER',
    'VOLUME', 'WORKDIR'
]


class Source(Base):
    def __init__(self, vim):
        Base.__init__(self, vim)

        self.name = 'docker'
        self.mark = '[Docker]'
        self.filetypes = ['dockerfile']
        self.input_pattern = r'[a-zA-Z_]\w*[:/]\w*|' + \
            r'^\s*[' + '|'.join(KEYWORD) + ']\s+(?:[\w\.]*(?:,\s*)?)*'
        self.rank = 500
コード例 #12
0
ファイル: emoji.py プロジェクト: jcarreja/deoplete-emoji
# Copyright (c) 2018 Filip Szymański. All rights reserved.
# Use of this source code is governed by an MIT license that can be
# found in the LICENSE file.

import re

from .base import Base
from deoplete.util import load_external_module

load_external_module(__file__, 'sources/emoji')
from data import EMOJI_CODES


class Source(Base):
    def __init__(self, vim):
        super().__init__(vim)

        self.__pattern = re.compile(r':[^:\s]+$')

        self.filetypes = ['gitcommit', 'markdown']
        self.mark = '[emoji]'
        self.matchers = ['matcher_length', 'matcher_full_fuzzy']
        self.name = 'emoji'
        self.max_candidates = 0

    def gather_candidates(self, context):
        return [{
            'word': k,
            'kind': ' {} '.format(v)
        } for (k, v) in EMOJI_CODES.items()]
コード例 #13
0
import os
import re

from deoplete.sources.base import Base
from deoplete.util import load_external_module

current = __file__
load_external_module(current, 'jedi')
load_external_module(current, 'sources/deoplete_jedi')
import jedi


class Source(Base):

    def __init__(self, vim):
        Base.__init__(self, vim)

        self.name = 'jedi'
        self.mark = '[jedi]'
        self.rank = 500
        self.filetypes = ['python']
        self.input_pattern = (r'[^. \t0-9]\.\w*$|'
                              r'^\s*@\w*$|'
                              r'^\s*from\s.+import \w*|'
                              r'^\s*from \w*|'
                              r'^\s*import \w*')

        self.description_length = \
            self.vim.vars['deoplete#sources#jedi#statement_length']

        # jedi core library settings
コード例 #14
0
import os
import re

from deoplete.sources.base import Base
from deoplete.util import load_external_module

current = __file__
load_external_module(current, "jedi")
import jedi

_block_re = re.compile(r"^\s*(def|class)\s")

# Type mapping.  Empty values will use the key value instead.
# Keep them 5 characters max to minimize required space to display.
_types = {
    "import": "imprt",
    "class": "",
    "function": "def",
    "globalstmt": "var",
    "instance": "var",
    "statement": "var",
    "keyword": "keywd",
    "module": "mod",
    "param": "arg",
    "property": "prop",
    "bool": "",
    "bytes": "byte",
    "complex": "cmplx",
    "dict": "",
    "list": "",
    "float": "",
コード例 #15
0
ファイル: deoplete_go.py プロジェクト: dzhou121/deoplete-go
import os
import re
import platform
import subprocess

from collections import OrderedDict

from .base import Base
from deoplete.util import charpos2bytepos, error, expand, getlines, load_external_module

load_external_module(__file__, 'sources/deoplete_go')
from cgo import cgo
from stdlib import stdlib

try:
    load_external_module(__file__, '')
    from ujson import loads
except ImportError:
    from json import loads

known_goos = ('android', 'darwin', 'dragonfly', 'freebsd', 'linux', 'nacl',
              'netbsd', 'openbsd', 'plan9', 'solaris', 'windows')


class Source(Base):
    def __init__(self, vim):
        Base.__init__(self, vim)

        self.name = 'go'
        self.mark = '[Go]'
        self.filetypes = ['go']
コード例 #16
0
import logging
import os
import re

from deoplete.base.source import Base
from deoplete.util import bytepos2charpos, getlines, load_external_module

# Insert Parso and Jedi from our submodules.
load_external_module(__file__, 'vendored/jedi')
load_external_module(__file__, 'vendored/parso')
load_external_module(__file__, 'sources')

from deoplete_jedi import profiler  # isort:skip  # noqa: I100

import jedi  # noqa: E402

# Type mapping.  Empty values will use the key value instead.
# Keep them 5 characters max to minimize required space to display.
_types = {
    'import': 'imprt',
    'class': '',
    'function': 'def',
    'globalstmt': 'var',
    'instance': 'var',
    'statement': 'var',
    'keyword': 'keywd',
    'module': 'mod',
    'param': 'arg',
    'property': 'prop',
    'bool': '',
    'bytes': 'byte',
コード例 #17
0
import os
import re

from .base import Base
from deoplete.util import load_external_module

current = __file__

load_external_module(current, 'clang')
import clang.cindex as clang

load_external_module(current, 'sources/deoplete_clang')
from clang_data import index_h


class Source(Base):

    def __init__(self, vim):
        Base.__init__(self, vim)

        self.name = 'clang'
        self.mark = '[clang]'
        self.filetypes = ['c', 'cpp', 'objc', 'objcpp']
        self.rank = 500
        # TODO(zchee): not need "r'[a-zA-Z_]\w*::\w*'" in C language
        self.input_pattern = (r'[^. \t0-9]\.\w*|'
                              r'[^. \t0-9]->\w*|'
                              r'[a-zA-Z_]\w*::\w*')

    def on_init(self, context):
        vars = context['vars']
コード例 #18
0
import os
import re
import platform
import subprocess

from collections import OrderedDict

from deoplete.base.source import Base
from deoplete.util import charpos2bytepos, expand, getlines, load_external_module

load_external_module(__file__, "sources/deoplete_go")
from cgo import cgo
from stdlib import stdlib

try:
    load_external_module(__file__, "")
    from ujson import loads
except ImportError:
    from json import loads

# from https://github.com/golang/go/blob/go1.13beta1/src/go/build/syslist.go
known_goos = (
    "aix",
    "android",
    "appengine",
    "darwin",
    "dragonfly",
    "freebsd",
    "hurd",
    "illumos",
    "js",
コード例 #19
0
ファイル: deoplete_go.py プロジェクト: nhooyr/deoplete-go
import os
import re
import subprocess

from collections import OrderedDict

from .base import Base
from deoplete.util import charpos2bytepos, error, load_external_module

load_external_module(__file__, 'sources/deoplete_go')
from clang_index import Clang_Index
from stdlib import stdlib

try:
    load_external_module(__file__, 'ujson')
    from ujson import loads
except ImportError:
    from json import loads


class Source(Base):

    def __init__(self, vim):
        Base.__init__(self, vim)

        self.name = 'go'
        self.mark = '[Go]'
        self.filetypes = ['go']
        self.input_pattern = r'(?:\b[^\W\d]\w*|[\]\)])\.(?:[^\W\d]\w*)?'
        self.rank = 500
コード例 #20
0
    def on_init(self, context):
        vars = context["vars"]

        self.gocode_binary = ""
        if "deoplete#sources#go#gocode_binary" in vars:
            self.gocode_binary = expand(
                vars["deoplete#sources#go#gocode_binary"])

        self.package_dot = False
        if "deoplete#sources#go#package_dot" in vars:
            self.package_dot = vars["deoplete#sources#go#package_dot"]

        self.sort_class = []
        if "deoplete#sources#go#package_dot" in vars:
            self.sort_class = vars["deoplete#sources#go#sort_class"]

        self.pointer = False
        if "deoplete#sources#go#pointer" in vars:
            self.pointer = vars["deoplete#sources#go#pointer"]

        self.auto_goos = False
        if "deoplete#sources#go#auto_goos" in vars:
            self.auto_goos = vars["deoplete#sources#go#auto_goos"]

        self.goos = ""
        if "deoplete#sources#go#goos" in vars:
            self.goos = vars["deoplete#sources#go#goos"]

        self.goarch = ""
        if "deoplete#sources#go#goarch" in vars:
            self.goarch = vars["deoplete#sources#go#goarch"]

        self.sock = ""
        if "deoplete#sources#go#sock" in vars:
            self.sock = vars["deoplete#sources#go#sock"]

        self.cgo = False
        if "deoplete#sources#go#cgo" in vars:
            self.cgo = vars["deoplete#sources#go#cgo"]

        self.cgo_only = False
        if "deoplete#sources#go#cgo_only" in vars:
            self.cgo_only = vars["deoplete#sources#go#cgo_only"]

        self.source_importer = False
        if "deoplete#sources#go#source_importer" in vars:
            self.source_importer = vars["deoplete#sources#go#source_importer"]

        self.builtin_objects = False
        if "deoplete#sources#go#builtin_objects" in vars:
            self.builtin_objects = vars["deoplete#sources#go#builtin_objects"]

        self.unimported_packages = False
        if "deoplete#sources#go#unimported_packages" in vars:
            self.unimported_packages = vars[
                "deoplete#sources#go#unimported_packages"]

        self.fallback_to_source = False
        if "deoplete#sources#go#fallback_to_source" in vars:
            self.fallback_to_source = vars[
                "deoplete#sources#go#fallback_to_source"]

        self.loaded_gocode_binary = False
        self.complete_pos = re.compile(r'\w*$|(?<=")[./\-\w]*$')

        if self.pointer:
            self.complete_pos = re.compile(self.complete_pos.pattern + r"|\*$")
            self.input_pattern += r"|\*"

        if self.cgo:
            load_external_module(__file__, "clang")
            import clang.cindex as clang

            self.libclang_path = vars.get(
                "deoplete#sources#go#cgo#libclang_path", "")
            if self.libclang_path == "":
                return

            self.cgo_options = {
                "std": vars.get("deoplete#sources#go#cgo#std", "c11"),
                "sort_algo": vars.get("deoplete#sources#cgo#sort_algo", None),
            }

            if (not clang.Config.loaded
                    and clang.Config.library_path != self.libclang_path):
                clang.Config.set_library_file(self.libclang_path)
                clang.Config.set_compatibility_check(False)

            # Set 'C.' complete pattern
            self.cgo_complete_pattern = re.compile(r"[^\W\d]*C\.")
            # Create clang.cindex.Index database
            self.index = clang.Index.create(0)
            # initialize in-memory cache
            self.cgo_cache, self.cgo_inline_source = dict(), None
コード例 #21
0
ファイル: greek.py プロジェクト: Inazuma110/deoplete-greek
from .base import Base
from deoplete.util import load_external_module
load_external_module(__file__, 'source')
from data import GREEK_DICT


class Source(Base):
    def __init__(self, vim):
        super().__init__(vim)
        self.name = 'greek'
        self.mark = '[greek]'
        self.min_pattern_length = 1

    def gather_candidates(self, context):
        return [{
            'word': k,
            'kind': '{}'.format(v)
        } for (k, v) in GREEK_DICT.items()]
コード例 #22
0
import os
import re

from deoplete.sources.base import Base
from deoplete.util import load_external_module

current = __file__
load_external_module(current, 'jedi')
import jedi

_block_re = re.compile(r'^\s*(def|class)\s')

# Type mapping.  Empty values will use the key value instead.
# Keep them 5 characters max to minimize required space to display.
_types = {
    'import': 'imprt',
    'class': '',
    'function': 'def',
    'globalstmt': 'var',
    'instance': 'var',
    'statement': 'var',
    'keyword': 'keywd',
    'module': 'mod',
    'param': 'arg',
    'property': 'prop',
    'bool': '',
    'bytes': 'byte',
    'complex': 'cmplx',
    'dict': '',
    'list': '',
    'float': '',