2013-08-08 2 views
4

Я начал работать с doxygen, чтобы сгенерировать документацию моего кода на Python. Я использую фильтр doxypy для предварительной обработки докстронтов Python. Моя цель - иметь приятный синтаксический подсветка комментариев doxygen в Python.Vim синтаксис подсветка докстеров doxygen в Python

При написании моего MainPage в выделенном файле .dox, я обнаружил, что комментарии Doxygen могут быть выделены в Vim с помощью следующей команды:

set syntax=c.doxygen 

Я попробовал ту же команду для Python, но Я ничего не получил: набор синтаксиса = python.doxygen

Я также сделал некоторые погугли и не смог найти ничего интересного

Вот типичный кусок кода, который я хотел бы подчеркнуть:

class CompilationTab: 
    """ 
    The compilation tab of the verif GUI. It contains the layout description 
    and the functions required to deal with specific behaviors of the tab 
    """ 
    def __init__(self, notebook, tab_name): 
     """ 
     The class constructor. 

     @param notebook Notebook: The parent @c Notebook widget 
     @param tab_name String: The display name of the tab 
     """ 

ли кто-нибудь уже устранили эту проблему? Благодарим за помощь!

ответ

6

Если вы смотрите в syntax/doxygen.vim вы можете прочитать в преамбуле файла, который в настоящее время только

cpp, c, idl, doxygen and php 

файлы поддерживаются.

С doxygen.vim много работает с командой syn region. Я искал строку, которая определяет многострочную строку в syntax/python.vim.

Интересная часть команды, которая определяет этот регион является

syn region pythonString start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend 

производный от того, что находится в doxygen.vim и выше линии вы можете добавить следующие строки

"delete the following line if you don't want to have enhanced colors 
let g:doxygen_enhanced_color=1 
runtime! syntax/doxygen.vim 
syn region doxygenComment matchgroup=pythonString start=+[uU]\=\z('''\|"""\)+ end="\z1" contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold containedin=pythonString 

в ~/.vim/after/syntax/python.vim или выполнить их вручную.

Кроме того, вам, возможно, придется вручную настроить цвета добавленных групп выделения кислорода. По крайней мере, я бы сделал это, так как полученный результат не соответствует моему вкусу.

Возможно, аргумент fold команды syn представляет для вас особый интерес. Если вы установили foldmethod в syntax, вы можете складывать и разворачивать многострочные комментарии.Это, кажется, будет полезно, если вы больше не могли выносить вид этих цветов и ленив, чтобы настроить их :)


без Doxygen подсветки:

enter image description here

с Doxygen подсветкой и g:doxygen_enhanced_color == 1 :

enter image description here

+0

Спасибо так много, она работает просто отлично :)! У меня проблема при использовании ftplugin/python.vim. Синтаксис не загружен, даже если у меня есть 'filetype plugin on' и что': filetype' дает мой 'python'. Я временно решил его, добавив три строки, которые вы мне дали в синтаксисе/python.vim. Я боюсь, что моя настройка немного глючит. – Plouff

+0

Кстати, как вы сказали, подсветка не идеальна. Я могу попытаться обновить его позже ... – Plouff

+1

Действительно, добавление команд в 'ftplugin/python.vim' не работает. Вы должны поместить их в '~/.vim/after/syntax/python.vim' вместо этого. Я исправлю это в своем ответе. С наилучшими пожеланиями – user1146332

Смежные вопросы