Lenchik / Akelpad-syntax-highlighting

Syntax themes for AkelPad text editor with Coder plugin (AutoHotkey, AviSynth, bash, BibTeX, Grub4Dos, KiXtart, LaTeX, Makefile, nnCron, R, Smarty, plain text and many more other syntax highlighting)
33 stars 3 forks source link

latex|bibtex.coder special todo comment #29

Open Lenchik opened 9 years ago

Lenchik commented 9 years ago

Хотелось бы такую фичу, недавно появившуюся в TeXStudio (даже получше). http://texstudio.sourceforge.net/manual/current/CHANGELOG.txt

  • generalized TODO comment detection: any multiple-capital-letter word is recognized as todo-style comment (e.g. "% FIXME", "% ASK")

На таком коде:

\[ %UG           bug     bug
    \mathrm{d}Z
    =
    \mathrm{d}T,
\]
\[ % % %% BUG           bug     bug                                  
    A_{si}
    =
    b h_{si},
\]
\[ % ANNOT                                  
    A_g
    =
    b h_g,
\]% ASK

выглядит так: latex_feature_req

Хотелось бы, чтобы ещё и строки вида % % %% BUG bug bug могли быть подсвечены так же, если это возможно и не сильно замедлит работу Акеля

%D_{ij} = \frac{1}{3} \sum\limits_{k=1}^n (Q_{ij})_k (z_k^3 - z_{k-1}^3),

Вот такое в TeXStudio тоже подсвечивается, а не хотелось бы.

Skif-off commented 9 years ago

Хотелось бы такую фичу

А конкретнее? :) Подсветить? Добавить в структуру файла? Просто подсветить вроде не сложно даже без новых фич плага, в структуру добавить тоже не сложно, в общем-то, но выглядит ужасно. Если только за счёт новых фич пробовать, но не уверен, что можно сделать вложенным, типа чтобы строка

\begin{xxx} %FIX

в панели структуры выглядела так

\begin{xxx}
    %FIX

а не так

\begin{xxx} %FIX

(Возможность навигации по подобным комментариям схожую с оной в TeXStudio можно попробовать сделать с помощью закладок, скриптом.)

Хотелось бы, чтобы ещё и строки вида % % %% BUG bug bug могли быть подсвечены так же

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

%FIX %ASK %BUG %ADD

а сейчас получается, что всё, что начинается с двух заглавных латинских букв - special todo comment.

Вот такое в TeXStudio тоже подсвечивается, а не хотелось бы.

%D_{ij} = \frac{1}{3} \sum\limits_{k=1}^n (Q_{ij})_k (z_k^3 - z_{k-1}^3),

Почему не хотелось бы? Знак % не экранирован ("\%"), тогда получается, что всё, начиная с него и до конца строки, - комментарий. Подсвечивается как special todo comment? Забыл проверить :)

P.S. Надо подумать, уточнить про lookahead в QuotesRE/Folds.

Lenchik commented 9 years ago

Подсветить? Добавить в структуру файла?

Да. То и другое.

Подсвечивается как special todo comment? Забыл проверить

Именно как TODO подсвечивается, а это явно не он.

И заодно ещё по структуре в кодефоллде как-то отрабатывать вложенность

\part{title}
\chapter{title}
\section{title}
\subsection{title}
\subsubsection{title}
\paragraph{title}
\subparagraph{title}
\part*{title}
\chapter*{title}
\section*{title}
\subsection*{title}
\subsubsection*{title}
\paragraph*{title}
\subparagraph*{title}

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

Вообще как-то странно сделано, выглядит разумным сделать конкретный список типа

Расширяемость - какие хочешь, такие добавишь - там же можно так комментарии рецензентов или от нескольких авторов писать и всё такое - кому что в голову придёт. И всё пишется в структуру, отдельным списком, помимо структуры part-chapter-section-... clipboard-4 Наш codefold пока так не сможет, но хотя бы приблизится

Skif-off commented 9 years ago

Подсвечивается как special todo comment?

Именно как TODO подсвечивается, а это явно не он.

Похоже на баг: any multiple-capital-letter word is recognized as todo-style comment

А как вообще должна подсветиться данная строка?

И заодно ещё по структуре в кодефоллде как-то отрабатывать вложенность

Была такая мысль, ждал, пока устаканятся изменения в плагине. Однако есть вопросы :) Если разложить по размеру:

\begin{document}
  \part
    \chapter
      \section
        \subsection
          \subsubsection
            \paragraph
             \subparagraph

Но это же не значит, что для \section родительским всегда будет \chapter, с тем же успехом родительским может быть \begin{document}. Если только делать несколько правил для почти каждого из уже существующих, что как минимум здорово раздует секцию.

Была мысль для секции Words указать родительские (типа команд, работающих только внутри, например, Math mode), вроде как более интеллектуальная подсветка-валидатор, но команды разметки подсвечиваются иначе, а убирать правила из QuotesRE и использовать Words не вариант: в некоторых случаях команды не захватятся. Да и противоречит начальной идее :)

Но в этом случае есть опасность - это же весь документ отработать надо и прознать, какая там структура.

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

И всё пишется в структуру, отдельным списком, помимо структуры part-chapter-section-...

Специализированному редактору делать подобное проще :)

Наш codefold пока так не сможет

Это уже тянет на полноценный плаг, типа FunctionList в Notepad++. Наверное, можно и скриптом распарсить текст и нарисовать GUI с TreeView. Закладки можно уже сейчас расставить. Не понял, по какому принципу группируются пункты на скрине? Или МЕТКИ - это уже пакет todonotes?

Lenchik commented 9 years ago

А как вообще должна подсветиться данная строка?

Никак - просто комментарий

Метки это всё, что \label{метка}.

"Предстоит сделать", это вот эти todo-style-notes.

Есть ещё всё, что подгружается \input и \include

А после того структура part-chapter-section-...

не значит, что для \section родительским всегда будет \chapter

Ага. Мало того, что по прихоти писателя, так ещё для разных классов, даже базовых, есть различия. У report вроде бы крупнее chapter не определено, но стартовать можно и с section и без всего. У article chapter нет - самый верхний допустимый section. Да, есть над чем голову поломать. Может, в xml.coder можно что-то стырить. Там же маньячные структуры генерируются на ходу из одной разметки.


https://sourceforge.net/p/texstudio/bugs/1557/

Баг фиксить не будут

Но по ссылкам всплыла наводка на их принципы обработки разных форматов:

https://sourceforge.net/p/texstudio/hg/ci/default/tree/utilities/qxs/ http://texstudio.sourceforge.net/manual/qce/QNFA.html http://texstudio.sourceforge.net/manual/current/usermanual_en.html#LANGUAGEDEF https://sourceforge.net/p/texstudio/discussion/907840/thread/534a1cfa/#b5a8

Может пригодиться

Skif-off commented 9 years ago

Метки это всё, что \label{метка}.

В том смысле, что комментарий используется как пометка.

Баг фиксить не будут

Если используется выражение "%\s?[A-Z][A-Z_-]+", то вроде как и не баги. Сделал аналогично для совместимости.

В общем, добавил/изменил подсветку комментариев + \input и \include в панель структуры, с остальным надо ещё подумать.

Lenchik commented 9 years ago

Хотелось бы, чтобы не просто жирным, а ещё и фоновым цветом эта строка/строки выделялись, чтобы заметно было.

Skif-off commented 9 years ago

Не удалось подобрать приемлемый цвет для фона и шрифта, идеи приветствуются :)

Lenchik commented 9 years ago
; Special todo comment (TeXStudio) & ordinary comment line
1   "(?<!\\)(% |%)[A-Z][A-Z_\-]+[^\r\n]++$" "\0=(4,${CodeFold_ListBkColor},${CodeFold_ListTextColor})"  0   0
Skif-off commented 9 years ago

Вы пробовали только на своей теме? С дефолтными результат получается непредсказуемый, а на моей - вообще сливается с фоном. Вспомнил, сделал ход конём, цвета как в TeXStudio:

1   "(?<!\\)(% |%)[A-Z][A-Z_\-]+[^\r\n]++$" "\0=(4,#000000,#A9CF83)"    0   0

Как вам? Может быть, раз подсвечен фон, убрать жирность и оставить только курсив?

Lenchik commented 9 years ago

Я попробовал на нескольких и выбирал тот вариант как "инвертацию" кодфолдинговых цветов, которые у всех стандартных должны быть нормально согласованы. Ваш вариант тоже хорошо смотрится. Ход конём, действительно, получился. Жирность и курсив не надо убирать - так нормально видно и читается, во всяком случае при шрифте Consolas.

Skif-off commented 9 years ago

С дефолтной получается равносильно (4,0,0), а у меня изменённая цветовая тема + тема плагина Coder на основе дефолтной и _${CodeFoldListBkColor} = цвету фона, всё вместе как-то не очень выглядит при переключении стандартных тем.