palette.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:nvim-palette 作者: teto 项目源码 文件源码
def load_options_definitions(self, force=False):
        """
        Load vim option descriptions from a mpack file
        """
        r = g.bindtextdomain('nvim', locale_dir)

        fields = ["full_name", "short_desc", "abbreviation", "scope"]
        # we embed the mpack file to deal with old nvim
        folders = [
            self.nvim.eval('$VIMRUNTIME').strip(),
            os.path.join(os.path.dirname(os.path.abspath(__file__)), '../..')
        ]

        fname = None
        # TODO let the user be able to override default paths
        try:
            fname = self.nvim.vars['palette_descriptions_file']
            logger.info("using configured g:palette_descriptions_file value")
        except Exception as e:
            logger.debug("Looking for descriptions files")
            # NvimDevLintToggle
        if fname is None:

            for folder in folders:
                fname = os.path.join(folder, 'data', 'options.mpack')
                logger.debug("Checking path '%s'" % fname)
                if os.path.isfile(fname):
                    break

        # fname = '/home/teto/neovim2/build/runtime/data/options.mpack'
        # fname = os.path.join(filedir, "options.mpack"),
        logger.info("Loading descriptions from file %s" % fname)

        try:
            fd = open(fname, 'rb')
            res = msgpack.loads(fd.read())
        except Exception as e:
            logger.error('Could not load definitions')
            self.nvim.command("echomsg 'Could not load definitions'")
            raise e

        df = pd.DataFrame([], columns=fields)
        for entry in res:
            temp = {k.decode(): v.decode() if isinstance(v, bytes) else v for k, v in entry.items()}

        # unpacker = msgpack.Unpacker(fd, use_list=False)
        # for unpacked in unpacker:
        #     print(unpacked)
            df = df.append(temp, ignore_index=True)
        # df = pd.DataFrame(res, columns=fields)
        # df.from_records(res)
        # logger.debug(df["scope"].head())
        df["scope"] = df["scope"].apply(lambda x: [e.decode() for e in x])
        # print(df)
        return df

    # @neovim.function('PaletteGetMenu', sync=True)
    # def get_menus(self, args):
    #     entries = self.retrieve_menus()
    #     keys = list(entries.keys())
    #     res = self.nvim.call('PaletteFzf', keys)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号