Ace: Adicionando '.' caractere para correspondência de prefixo para completadores Ref- 'ace/autocomplete/util'

Criado em 31 out. 2013  ·  10Comentários  ·  Fonte: ajaxorg/ace

Por consideração,

O módulo 'ace/autocomplete/util', no arquivo ext-language_Tools.js, define um regEx que é usado para determinar correspondências de prefixo para completadores definidos.

var ID_REGEX = /[a-zA-Z_0-9$-]/;
usado em , export.retrievePrecedingIdentifier

Como definimos um completador personalizado para suportar nossas estruturas de objetos (Pessoa.Nome.Primeiro etc...), isso causou um problema em que ID_REGEX não corresponderia ao caractere ponto. Isso pode ser substituído em nosso completor personalizado, mas faz com que os completadores definidos em ace/ext/language_tools poluam nossas correspondências com todo o escopo do documento.

A modificação parece trivial...
var ID_REGEX = /[a-zA-Z_0-9$-.]/;

language_tools

Comentários muito úteis

@nightwing alguma atualização sobre isso?

Todos 10 comentários

Ou melhor, o ID_REGEX poderia ser uma opção para o ace/autocomplete/util mdoule?

sim, torná-lo uma opção é melhor

Estou batendo no mesmo problema. Tentei encontrar uma maneira legal de personalizar a correspondência de prefixos, mas não encontrei algo viável. Existe uma solução disponível?

Eu assumi que o Tokenizer do modo atual seria usado para determinar o prefixo atual... o que permitiria regras dinâmicas de localização de prefixo... legal? Ou eu estou esquecendo de alguma coisa? Dessa forma eu poderia criar meu próprio modo (talvez não tão trivial quanto eu esperava, mas caberia... certo?)

O suporte experimental para isso foi adicionado há algum tempo https://github.com/ajaxorg/ace/blob/badade8f4e9d10194b1f802c57cc368e5fe90688/lib/ace/autocomplete.js#L220 mas não tenho certeza se funciona bem e ainda pode mudar.
Usar o tokenizer funcionaria se o tokenizer fosse escrito com isso em mente, mas muitos modos não funcionariam, pois atribuem classe de texto a tudo que não está destacado.

Isso será útil, não posso acreditar que a conclusão automática funcione sem isso.

@nightwing funciona (usando o primeiro item na matriz de resultados para passar o regex)

@antonpod Você pode descrever o que fez para que funcionasse? Abri esta edição há alguns meses.

@rsmith31415 no meu caso eu não precisava saber o prefixo antes de enviar a solicitação Ajax. Eu só precisava ajustar o regex para também corresponder aos pontos, depois que as palavras-chave foram buscadas.
De qualquer forma, não funciona como esperado, obtendo algumas combinações estranhas que parecem absolutamente aleatórias.

@antonpod Obrigado pela sua resposta. Talvez @nightwing possa compartilhar uma atualização sobre o suporte para esse recurso.

@nightwing alguma atualização sobre isso?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

featurecat picture featurecat  ·  4Comentários

ketysek picture ketysek  ·  3Comentários

mafar picture mafar  ·  4Comentários

mkosieradzki picture mkosieradzki  ·  4Comentários

xfix picture xfix  ·  5Comentários