Как настроить ctags, чтобы лучше выбрать файл определения для тега под курсором - PullRequest
1 голос
/ 19 апреля 2019

Вот пример использования файла python:

В дополнение к импорту Page из модуля wagtail.core.models при нажатии C-] в vim, Iвам будет предложено выбрать один из 13 вариантов.

Мне не нужно это запрашивать, и только одна страница соответствует строке импорта: третий тег (...site-packages/wagtail/core/models.py)

Странно, почему ctags по умолчанию не обрабатывает это правильно, но так и будет.Я хотел бы исправить конфигурацию, но потратив на это два дня, я немного растерялся.Любая помощь приветствуется.

$ uname -a
Linux xps9360 5.0.7-arch1-1-ARCH #1 SMP PREEMPT Mon Apr 8 10:37:08 UTC 2019 x86_64 GNU/Linux
$ pacman -Qs ctags
local/universal-ctags-git 0.r6117.c45511a3-1
    Multilanguage reimplementation of the Unix ctags utility
$ tree ~/.git_template  # http://tbaggery.com/2011/08/08/effortless-ctags-with-git.html
/home/dori/.git_template
└── hooks
    ├── ctags
    ├── post-checkout
    ├── post-commit
    ├── post-merge
    └── post-rewrite
$ git ctags   

.git/hooks/ctags (из этого блога )

#!/bin/sh
set -e
PATH="/usr/local/bin:$PATH"
dir="`git rev-parse --git-dir`"
trap 'rm -f "$dir/$$.tags"' EXIT
git ls-files | \
    #ctags --tag-relative -L - -f"$dir/$$.tags" --languages=-javascript,sql
    ctags -R --fields=+l --languages=python --python-kinds=-iv -f"$dir/$$.tags" $(python -c "import os, sys; print(' '.join('{}'.format(d) for d in sys.path if os.path.isdir(d)))")                                        

извлечение из ~/.vimrc:

Plug 'tpope/vim-fugitive' 
Plug 'jsfaint/gen_tags.vim'
autocmd User GenTags#CtagsLoaded echo "Ctags are loaded!"
"let g:gen_tags#ctags_opts = '–python-kinds=-i --verbose'
let g:gen_tags#statusline = 1
let g:gen_tags#verbose = 1

В текущем примере я запускаю проект с использованием фреймворка django-base WagTail, с которым я не знаком, и мне нужно регулярно проверять определения файлов, чтобы лучше понять, что происходит под капотом.Хотелось бы, чтобы у меня был приятный опыт для повышения моей производительности.

РЕДАКТИРОВАТЬ шаблоны Django:

Кажется, что Ctags не поддерживает шаблоны django .Запуск C-] поверх экстента возвращает теги мусора.Мой текущий процесс - :CtrlP path/to/wagtaildir/, затем поиск по имени шаблона, который мой файл расширяет от

Это далеко от оптимального.Я хотел бы услышать любые предложения по улучшению этого метода.

...