фигурные скобки и операторы, раскрашивающие энергию для C++?

Вы также можете рассмотреть возможность использования платформы Android для сохранения данных при изменении ориентации: onRetainNonConfigurationInstance() и getLastNonConfigurationInstance().

Это позволяет вам сохранять данные при изменениях конфигурации, такие как информация, которую вы, возможно, получили из выборки с сервера, или что-то еще, что было вычислено в onCreate или с тех пор, а также позволяет Android изменять макет вашего Activity, используя XML-файл для ориентации в настоящее время используется.

См. здесь или здесь .

Следует отметить, что эти методы в настоящее время устарели (хотя они по-прежнему более гибкие, чем управление изменением ориентации самостоятельно, как предполагает большинство из приведенных выше решений) с рекомендацией, чтобы все переключились на Fragments и вместо этого использовали setRetainInstance(true) на каждом Fragment вы хотите сохранить.

11
задан grigoryvp 29 July 2009 в 10:28
поделиться

1 ответ

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

:syn match Braces display '[{}()\[\]]'
:hi Braces guifg=red

или вы можете загрузить плагин выделения радуги , который дает разные цвета для разных уровней отступа. См. Также мой ответ на этот вопрос .

:help :syn-match
:help hi

Здесь приведен снимок экрана с изображением радужной скобки в действии (с моей цветовой схемой Bandit ) . 1226] Редактировать:

Чтобы определить группу выделения всего, что вас интересует, создайте это отображение:

:map <F3> :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<CR>

(взято из здесь ). Затем наведите курсор на то, что вас интересует, и нажмите F3. Если он вообще не выделен, Vim напечатает:

hi<> trans<> lo<>

Если есть определенная группа выделения, вы получите что-то вроде этого (с курсором над ключевым словом if ):

hi<cConditional> trans<cConditional> lo<Conditional>

, который сообщает вам, что группа выделения называется cConditional и что он связан (с : hi link ) с группой под названием Conditional . С выделением радужной скобки вы можете получить что-то вроде cCurly1 , что означает, что он находится внутри фигурной скобки, но без дополнительного выделения.

Редактировать 2:

Возможный сопоставитель операторов (не очень хорошо протестирован ):

let cOperatorList  = '[-&|+<>=*/!~]'    " A list of symbols that we don't want to immediately precede the operator
let cOperatorList .= '\@<!'             " Negative look-behind (check that the preceding symbols aren't there)
let cOperatorList .= '\%('              " Beginning of a list of possible operators
let cOperatorList .=     '\('           " First option, the following symbols...
let cOperatorList .=        '[-&|+<>=]'
let cOperatorList .=     '\)'
let cOperatorList .=     '\1\?'         " Followed by (optionally) the exact same symbol, so -, --, =, ==, &, && etc
let cOperatorList .= '\|'               " Next option:
let cOperatorList .=     '->'           " Pointer dereference operator
let cOperatorList .= '\|'               " Next option:
let cOperatorList .=     '[-+*/%&^|!]=' " One of the listed symbols followed by an =, e.g. +=, -=, &= etc
let cOperatorList .= '\|'               " Next option:
let cOperatorList .=     '[*?,!~%]'     " Some simple single character operators
let cOperatorList .= '\|'               " Next option:
let cOperatorList .=     '\('           " One of the shift characters:
let cOperatorList .=         '[<>]'     
let cOperatorList .=     '\)'
let cOperatorList .=     '\2'           " Followed by another identical character, so << or >>...
let cOperatorList .=     '='            " Followed by =, so <<= or >>=.
let cOperatorList .= '\)'               " End of the long list of options
let cOperatorList .= '[-&|+<>=*/!~]'    " The list of symbols that we don't want to follow
let cOperatorList .= '\@!'              " Negative look-ahead (this and the \@<! prevent === etc from matching)

exe "syn match cOperator display '" . cOperatorList . "'"

syn match cOperator display ';'
hi link cOperator Operator
28
ответ дан 3 December 2019 в 01:45
поделиться
Другие вопросы по тегам:

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