Как переопределить выделение синтаксиса по умолчанию в энергии?

Я работал самостоятельно в течение многих лет. Сначала как часть группы инженеров-механиков. Теперь на моих собственных проектах. Я соглашаюсь с ответами выше:

Говорят с кем-то (кто-либо) о том, что Вы продолжаете работать. Глаза моей жены быстро тускнеют, но она пытается задать вопросы разъяснения. Обычно вопросы не имеют никакого смысла, но я притворяюсь, что она - мой босс, и ответьте на них так или иначе. Я нахожу все виды решений тем путем.

Методологии разработки являются главным образом излишеством для команды с 1 человеком. Я принял несколько гибких методов все же. Во-первых, не оцените все в маленьких блоках времени больше, чем половина дня. Во-вторых, повредите свою работу в маленькие "спринты" три - или четыре недели. Я использую FogBugz для всей моей оценки и планирования (существует бесплатная размещенная версия для 1-2 групп человека).

не забывают основы документации кода, управления исходным кодом и поблочного тестирования. Я использую Doxygen, Subversion/TortoiseSVN и NUnit соответственно.

12
задан Pehlaj 23 May 2017 в 05:45
поделиться

3 ответа

Есть четыре варианта (два из которых были предложены другими):

  1. Использовать структуру после в vim-файлах (~ / .vim / after / syntax / cpp.vim):

    : справка после каталога
    
  2. Использовать соответствие для текущего окна:

    : сопоставить действительно_уникальное_имя "[()]"
    
  3. Используйте matchadd () снова для текущего окна, но это позволяет вам удалять отдельные совпадения, если вам в дальнейшем понадобится:

    : call matchadd ('really_unique_name', "[()]")
    " Или
    : let MyMatchID = matchadd ('настоящее_уникальное_имя', «[()]»)
    "а затем, если вы хотите выключить его
    : call matchdelete (MyMatchID)
    
  4. Установите плагин Dr Chip rainbow.vim , чтобы выделить фигурные скобки разными цветами в зависимости от уровня отступа.

В этой ситуации я бы порекомендовал вариант 1, поскольку он выглядит так, как вы хотите сделать это часть общего синтаксиса. Если вы хотите использовать совпадения и хотите, чтобы они зависели от буфера (а не от окна), вам понадобится что-то вроде:

function! CreateBracketMatcher()
    call clearmatches()
    call matchadd('really_unique_name', "[()]")
endfunc
au BufEnter <buffer> call CreateBracketMatcher()

Для получения дополнительной информации см .:

:help after-directory
:help :match
:help matchadd()
:help matchdelete()
:help clearmatches()
:help function!
:help autocmd
:help autocmd-buffer-local
:help BufEnter

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

24
ответ дан 2 December 2019 в 03:48
поделиться

Поместите настройки в ~ / .vim / после / syntax / cpp.vim

9
ответ дан 2 December 2019 в 03:48
поделиться

Я бы просто прокомментировал сообщение leppie , но оно становилось слишком длинным.

В настоящее время я работаю над экспериментальной реализацией интерфейса командной строки. Есть много случаев, когда общедоступный метод (или свойство) не может быть реализован без знания того, как виртуальная машина реализована внутри. Одним из примеров является OffsetToStringData , который требует знания того, как диспетчер памяти выделяет строки.

В подобных случаях, когда нет кода C # для выражения метода, вы можете обрабатывать каждый вызов метода в специальный путь внутренний к процессу JIT. В качестве примера можно заменить байт-код вызова на ldc.i4 (целочисленная константа загрузки) перед его передачей в генератор собственного кода. Флаг InternalCall означает, что «тело этого метода особым образом обрабатывается самой средой выполнения». Фактическая реализация может быть, а может и не быть - в некоторых случаях в моем коде вызов обрабатывается JIT как внутренний .

Есть и другие случаи, когда JIT может иметь доступную специальную информацию, которая позволяет тяжелая оптимизация метода. Одним из примеров являются методы Math , где, хотя эти могут быть реализованы на C # , указание InternalCall , чтобы сделать их эффективными встроенными функциями, имеет значительные преимущества в производительности.

В C # метод должен иметь тело, если оно не является абстрактным или внешним . extern означает общее: «Вы можете вызвать этот метод из кода C #,

4
ответ дан 2 December 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: