Nenhum nome de função destacado neste caso especial

1

se eu escrever uma função da seguinte maneira:

int foo(int bar)
{}

O sublime destaca foo corretamente. No entanto, neste caso:

int foo
    (int bar)
{}

foo perde todos os realces.

Uma das coisas que mais gosto no C ++ é que ele não se importa com o espaço em branco. Existe uma maneira que eu possa fazer sublimamente chamar esse código corretamente?

Editar:

Depois de obter alguns ponteiros e navegar pelos arquivos de sintaxe defualt, isso:

<string>(?x)
(?:  ^                                 # begin-of-line
  |
     (?: (?= \s )           (?&lt;!else|new|return) (?&lt;=\w)      #  or word + space before name
       | (?= \s*[A-Za-z_] ) (?&lt;!&amp;&amp;)       (?&lt;=[*&amp;&gt;])   #  or type modifier before name
     )
)
(\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\s*\()
(
    (?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ |                  # actual name
    (?: (?&lt;=operator) (?: [-*&amp;&lt;&gt;=+!]+ | \(\) | \[\] ) )  # if it is a C++ operator
)
 \s*(?=\()</string>

parece ser o regex que está com defeito. No entanto, não consigo entender por que não estou recebendo meu código; a última linha, \s*(?=\() , deve corresponder a qualquer quantidade de espaço em branco ou novas linhas antes do paren de abertura, não?

    
por Ludwik 10.05.2015 / 10:31

1 resposta

1

O destaque da sintaxe do Sublime Text é totalmente configurável. Você pode criar uma cópia das regras padrão de realce de sintaxe do C ++, melhorá-las e dizer ao ST3 para usar sua versão melhorada.

O ST3 usa as regras de realce de sintaxe compatíveis com o Textmate, descritas aqui . Se você não gosta de trabalhar diretamente no Plists, pode usar o JSON ou alguns outros formatos e depois convertê-los automaticamente em Plist com AAAPackageDev (facilmente instalável com Controle de pacotes ).

O pacote C ++ padrão (que inclui regras de realce de sintaxe) está localizado em C:\Program Files\Sublime Text 3\Packages\C++.sublime-package . Seus pacotes personalizados podem ser colocados em C:\Users\%USERNAME%\AppData\Roaming\Sublime Text 3\Packages\User . A maneira mais fácil de chegar lá é através do menu do ST: Preferências → Procurar Pacotes .

    
por 10.05.2015 / 10:44