Ich möchte eine Liste von benutzerdefinierten Funktionen und Variablen zur automatischen Vervollständigung des Editors hinzufügen. Um dies zu tun, möchte ich alle Codebenutzer untersuchen, die in das Dokument eingefügt wurden, definierte Funktionen (und ihre Argumente), definierte Variablen und deren Umfang usw. finden.
Hauptfrage
Sind diese Daten bereits irgendwo im Quellcode (oder Sprach-Plugin) berechnet und ich kann sie einfach so aufgreifen? '
Was ich will
für Beispiel, wenn Benutzer Code wie folgt eingefügt:
%Vor%Ich möchte der Auto-Complete-Box die Funktion 'foo' mit zwei Parametern hinzufügen - var1 und var2. Ich möchte auch var0 zur Variablenliste hinzufügen und var3 einfach hinzufügen, wenn der Benutzer in den definierten Bereich schreibt (in der Funktion).
Was ich bereits weiß :
UPDATE: Ich habe das in meiner Antwort angedeutet, aber um es klarzustellen - Tern wird genau das tun, was du fragst was ich will . Snippet unten löst ein weiteres Problem der Bereitstellung eines Kontextes, den der Benutzer nicht einmal im Editor sehen soll. Screenshots Ihres Codes finden Sie unter Ace.Tern Live-Demo
Das ist gerechtfertigt, aber die beste Option zum Hinzufügen von Autovervollständigung in ace ist Tern .
>Tern akzeptiert die Konfigurationsoption typedef (hier beschrieben: Ссылка ), aber was interessanter ist, wird akzeptiert Ihr benutzerdefiniertes js-Objekt als Kind, dh:
%Vor% Wo obj
ist Ihr js-Objekt. Dann in Tern-Konfiguration verwenden Sie es als:
defs: ['Unterstrich', myContext]
Dies wird sowohl Ihr benutzerdefiniertes Objekt als auch das Unterstreichungsmodul für die automatische Vervollständigung verwenden.
Tern-bezogene ace.js-Konfiguration: (Siehe Ссылка für Kommentare zu den Konfigurationsoptionen )
%Vor%Tags und Links javascript autocomplete ace-editor