Nano syntax destacando regex mal formado?

0

Eu encontrei este arquivo de realce de sintaxe javascript para nano no google code, baixei e incluí no arquivo / etc / nanorc:

File: /usr/share/nano/js.nanorc

## all *js files  ( e.g. Firefox user.js, prefs.js )
## Old version
#syntax "jsfiles" "(\.|/|)js$"
#color green "//.*$" start="\/\*" end="\*\/"
#color blue "'(\.|[^'])*'"
#color red ""(\.|[^\"])*""
#color brightgreen "\<(true)\>"
#color brightred "\<(false)\>" "http\:\/\/.*$"
#color brightmagenta "[0-9](\.|[^\"])*)"
## New updated taken from http://wiki.linuxhelp.net/index.php/Nano_Syntax_Highlighting
syntax "JavaScript" "\.(js)$"
## Default
color white "^.+$"
## Decimal, octal and hexadecimal numbers
color yellow "\<[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\>"
## Floating point number with at least one digit before decimal point
color yellow "\<[-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?"
color yellow "\<[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?"
## Keywords
color green "\<(break|case|catch|continue|default|delete|do|else|finally)\>"
color green "\<(for|function|if|in|instanceof|new|null|return|switch)\>"
color green "\<(switch|this|throw|try|typeof|undefined|var|void|while|with)\>"
## Type specifiers
color red "\<(Array|Boolean|Date|Enumerator|Error|Function|Math)\>"
color red "\<(Number|Object|RegExp|String)\>"
color red "\<(true|false)\>"
## String
color brightyellow "L?\"(\"|[^"])*\""
color brightyellow "L?'(\'|[^'])*'"
## Escapes
color red "\[0-7][0-7]?[0-7]?|\x[0-9a-fA-F]+|\[bfnrt'\"\?\]"
## Comments
color magenta start="/\*" end="\*/"
color magenta "//.*$"

No entanto, agora, sempre que eu abro qualquer arquivo usando o nano, sou informado de que há erros. Esta linha é impressa para cada linha do arquivo que tenha uma expressão regular:

Error in /usr/share/nano/js.nanorc on line 11: Regex strings must begin and end with a " character

Ainda consigo abrir qualquer arquivo, e o realce de sintaxe ainda funciona para outros tipos de arquivos, mas não há destaque para JavaScript.

Alguém pode me ajudar aqui? Eu sou muito novo no nano (e no linux em geral, na verdade), mas não vejo problema com nenhuma dessas expressões regulares ... todas começam e terminam com "s.

    
por Luke 18.03.2013 / 18:25

2 respostas

0

Em geral, você pode fazer a rota "dividir e conquistar". Faça uma cópia do arquivo. Remova metade, tente a configuração. Se a sintaxe tiver um erro, estará na metade que está no arquivo - repita (remova metade). Se não, está no meio que você apagou. Use a metade que você dividiu e remova metade disso, até chegar a uma linha que é ruim.

Eu não sei o formato do arquivo, mas meu palpite seria a linha

#color red ""(\.|[^\"])*""

Começa com ", depois um" imediatamente, fechando-o e regex no meio. Eu estou supondo que você precisa escapar as citações internas:

#color red "\"(\.|[^\"])*\""
    
por 18.03.2013 / 18:38
0

Um caso de borda, mas possível:

Se estiver usando o Cygwin no Windows, certifique-se de que os finais de linha sejam do estilo Unix ( \n ), em oposição ao estilo do Windows ( \r\n ). Eu encontrei esse problema exato, e este é o único link que encontrei até mesmo nos sites do StackExchange. Pode ser um caso extremo, mas leva a esse problema exato

    
por 10.02.2015 / 03:59