J'utilise sql-interactive-mode
et j'ai besoin de backends d'entreprise qui complèteront les mots clés SQL et, de préférence, également les noms de colonne / table de la base de données utilisée.
À la recherche d'un achèvement, à ma grande surprise, il n'y avait pas encore de backend pour SQL. J'ai trouvé cet extrait , mais cela n'a pas fonctionné correctement.
Il est possible qu'il n'existe pas encore, et je pourrais créer un propre backend pour SQL. Mais j'ai du mal à croire qu'il n'y a pas de backend d'entreprise pour l'une des langues les plus courantes.
company-mode
sql-interactive-mode
sql-mode
ReneFroger
la source
la source
company-dabbrev
je suppose?company-keywords.el
, alors n'hésitez pas à contribuer! Et oui, le backend dabbrev attraperait cela (et tout le reste dans votre tampon) ...Réponses:
J'ai eu un problème similaire et j'ai décidé de créer mon propre backend. L'un des backends existants (C ++?) A été utilisé comme modèle et je l'ai modifié pour créer le nouveau backend qui se comporte comme un dictionnaire.
Dans ma configuration, les tampons SQLi sont automatiquement nommés pour correspondre à la base de données qui est connectée, par exemple.
*DB:DBASE1DM*
. Le backend contient une liste pour chaque base de données avec les schémas, les tables et les colonnes. Lorsque je veux terminer quelque chose, le nom du tampon est utilisé pour obtenir la liste correcte des candidats pour cette base de données.Cela présente l'inconvénient qu'il ne s'agit pas d'une opération intelligente et que l'inclusion de nouvelles bases de données ou la modification de bases de données existantes est un processus manuel. Quelques requêtes peuvent être utilisées pour collecter les données, puis il n'est pas très difficile de les masser dans le format requis pour le backend.
La fonction ci-dessous gère la connexion à une base de données et la modification des noms des tampons pour correspondre à la base de données qui est connectée.
la source
(add-to-list 'company-backends 'ry/company-sql) (add-to-list 'company-backends 'ry/company-sql-alist)
, je suis l'erreur suivante dansM-x sql-mysql
après avoir essayé un mot:Company: An error occurred in auto-begin Args out of range: "*SQL*", 4, -3
. Comment pourrais-je interpréter ce message d'erreur?*DB:
suffixe d'environnement et du nom du tampon afin d'obtenir le nom de la base de données afin que la liste correcte des complétions soit utilisée. La fonction suppose que le nom du tampon pour les complétions sera dans le formulaire*DB:ACCOUNTSDM*
. La sous-chaîne seraitACCOUNTS
extraite du nom du tampon.mysql
lieu dedb2
. Mais votre contribution est vraiment appréciée, j'ai donc validé votre réponse. Merci pour ça.