Ace: Agregando '.' Coincidencia de carácter a prefijo para completadores Ref- 'ace/autocompletar/util'

Creado en 31 oct. 2013  ·  10Comentarios  ·  Fuente: ajaxorg/ace

Por consideración,

El módulo, 'ace/autocomplete/util', en el archivo ext-language_Tools.js, define un regEx que se usa para determinar las coincidencias de prefijo para los completadores definidos.

var ID_REGEX = /[a-zA-Z_0-9$-]/;
utilizado en exportaciones.retrievePrecedingIdentifier

Como definimos un completador personalizado para admitir nuestras estructuras de objetos (Persona.Nombre.Primero, etc.), esto causó un problema en el que ID_REGEX no coincidirá con el carácter de punto. Esto se puede anular en nuestro completador personalizado, pero hace que los completadores definidos en ace/ext/language_tools contaminen nuestras coincidencias con todo el alcance del documento.

La modificación parece trivial...
var ID_REGEX = /[a-zA-Z_0-9$-.]/;

language_tools

Comentario más útil

@nightwing ¿ alguna actualización sobre esto?

Todos 10 comentarios

O más bien, ¿podría ID_REGEX convertirse en una opción para el módulo ace/autocomplete/util?

si, hacerlo una opcion es mejor

Estoy golpeando el mismo problema. Traté de encontrar una forma clara de personalizar la coincidencia de prefijos, pero no encontré nada viable. ¿Hay una solución disponible?

Supuse que el Tokenizer del modo actual se usaría para determinar el prefijo actual... lo que permitiría reglas dinámicas de búsqueda de prefijos... ¿genial? ¿O me estoy perdiendo algo? De esta manera podría crear mi propio modo (tal vez no tan trivial como esperaba, pero encajaría... ¿verdad?)

Hace algún tiempo se agregó soporte experimental para esto https://github.com/ajaxorg/ace/blob/badade8f4e9d10194b1f802c57cc368e5fe90688/lib/ace/autocomplete.js#L220 pero no estoy seguro de si funciona bien y aún podría cambiar.
Usar tokenizer funcionaría si tokenizer se escribe con eso en mente, pero muchos modos no funcionarán ya que asignan una clase de texto a todo lo que no está resaltado.

Esto será útil, no puedo creer que la función de autocompletar funcione sin esto.

@nightwing funciona (usando el primer elemento en la matriz de resultados para pasar la expresión regular)

@antonpod ¿Puedes describir lo que hiciste para que funcionara? Abrí este número hace un par de meses.

@ rsmith31415 en mi caso, no necesitaba saber el prefijo antes de enviar la solicitud de Ajax. Solo necesitaba ajustar la expresión regular para que coincidiera también con los puntos, después de obtener las palabras clave.
De todos modos, no funciona como se esperaba, obteniendo algunas coincidencias extrañas que parecen absolutamente aleatorias.

@antonpod Gracias por su respuesta. Tal vez @nightwing pueda compartir una actualización sobre el soporte para esta función.

@nightwing ¿ alguna actualización sobre esto?

¿Fue útil esta página
0 / 5 - 0 calificaciones