2013-01-16 12 views
6

Ich möchte einige Erweiterungen zu CodeMirror machen. Die addWidget-Methode scheint ein vielversprechender Ausgangspunkt zu sein. In der DokumentationCodeMirror - was ist addWidget für und wie man es benutzt?

addWidget (pos, Knoten, ScrollIntoView) Versetzt Knoten, der ein absolut positioniert DOM Knotens sein soll, in den Editor, positioniert rechts unterhalb der gegebenen {line, ch} Position. Wenn scrollIntoView den Wert true hat, stellt der Editor sicher, dass der gesamte Knoten sichtbar ist (falls möglich). Um das Widget wieder zu entfernen, verwenden Sie einfach DOM-Methoden (verschieben Sie es irgendwo sonst, oder rufen Sie removeChild auf seinem übergeordneten).

Ich verstehe nicht wirklich, was das bedeutet oder wofür ich es verwenden würde. Ich finde keine Verwendung davon in der CodeMirror Codebasis noch irgendwo anders in Google.

Antwort

3

Sie benötigen

einen HTML-Knoten und eine Position und einen Booleschen Wert zu übergeben
// create a node 
var htmlNode =document.createElement("h1"); 
var text = document.createTextNode("Text or whatever"); 
htmlNode.appendChild(text) 

// call this after you initialized the editor. 
// the position must be like this {ch: YourCharecterNumber, line: YourLineNumber} 
editor.addWidget({ch:30 , line: 1},htmlNode, true) 
+0

Richtig, ich die Methode Signatur zu verstehen, was ich bin nicht sicher ist, was ich für diese verwenden würde. Was tut es? Was ist ein Anwendungsfall? –

+0

Ich habe es verwendet, um ein benutzerdefiniertes AutoComplete-Widget hinzuzufügen. – aljordan82

+0

Sie verwenden es also, um mehr DOM-Elemente an einem bestimmten Ort im Editor hinzuzufügen? Wie hat das für deine AutoComplete funktioniert? Müssten Sie nicht ein Widget hinzufügen, wenn der Cursor gerade ist (ich gehe davon aus, dass es die bekannte Art war, über Pop-ups eine Autocomplete durchzuführen)? –

Verwandte Themen