2016-09-15 6 views
0

Faire le fichier * .sublime-complétions, j'ai trouvé le "bug" qui se produit lors de la saisie d'une fonction longue comme:Sublime Text 2 complétions

one.two.three.four.five(One := One_var, Two := Two_Var); 

Donc, si vous tapez toute la fonction:

"one.two.three.four.five", puis appuyez sur tab - il va coller une autre partie des fonctions sans problèmes.

Mais, si vous tapez "one.two.thr" - puis en pointe de pop-up voir que la fonction et appuyez sur "Enter" il remplace comme:

wrong autocomplete

one.two.one.two.three.four.five(One := One_var, Two := Two_Var); 

Comment puis-je configurer le déclencheur pour remplacer "one.two.thr" pour corriger le format de la fonction?

useless words

Ceci est mon déclencheur.

 { "trigger": "one.two.three.four.five", "contents": "${TM_CURRENT_LINE/(.*)/(one.two.three.four.five)/}(One := One_var, Two := Two_Var);" }, 

Répondre

1

Ce n'est pas un bogue, mais un paramètre par défaut de Sublime Text. Par défaut, les points sont traités comme word_separators. Par conséquent, à chaque fois que vous tapez ., le déclencheur d'achèvement sera réinitialisé.

Exemple:

Supposons que nous ne disposons que les achèvements suivantes disponibles: (! La | marque la position du curseur)

{ 
    "trigger": "one.two.three", 
    "contents": "one.two.three.four.five" 
}, 
{ 
    "trigger": "two", 
    "contents": "it_takes_two" 
} 

Maintenant, nous allons les saisir Sublime Text

Dans le dernier cas, les deux finitions seront listées dans le popup d'achèvement correspondance floue pour "deux". Cependant, la correspondance la plus proche "deux" aura une priorité plus élevée.

Pour corriger cela, vous pouvez modifier le paramètre word_separators dans un paramètre de package ou vos paramètres utilisateur globaux. Par défaut, le paramètre traite les caractères suivants comme séparateurs de mots:

./\\()\"'-:,.;<>[email protected]#$%^&*|+=[]{}`~? 

Alternativement, vous OMMISSIONS les points de vos déclencheurs d'achèvement, par exemple utilisez one-two-three au lieu de one.two.three.

+0

Oui, maintenant je comprends. Mais ressemble à la façon - enlever les points de "word_separators" n'est pas la meilleure manière. Il peut casser le comportement habituel. J'ai maintenant trouvé un autre moyen, mais ce n'est pas une solution, juste une autre approche pour formater le fichier de saisie semi-automatique. – trianglesis