Ich versuche ein IntelliJ-Plugin zu erstellen (hauptsächlich zu Lernzwecken). Mein Ziel ist es, dass das Plugin durch Drücken einer Tastenkombination einen entsprechenden PHP-Unit-Test-Methoden-Stub in der Testdatei generiert.Plugin: Wie fügt man eine neue Methode in die bestehende PHP-Klasse ein?
Also sagen wir, Db.php
ist offen, das Drücken auf Ctrl+Shift+U
das Plugin wird eine Einheit Teststub in DbTest.php
erstellen.
Bisher habe ich herausgefunden, wie man den Methodennamen am Cursor bekommt und wie man die entsprechende Unit-Testdatei (d. H. Db
=>DbTest
) als PsiFile
findet.
PsiFile[] search = FilenameIndex.getFilesByName(project, testFileName, scope); //scope is the test directory
PsiFile testFile = search[0];
Was ich kann nicht herausfinden ist , wie die diese erzeugt neue Methode Stub einfügen in testFile
und speichern Sie die Änderungen?
P.S. Ich sehe, es gibt eine createMethodFromText
Funktion, aber wie bekomme ich die PsiClass von PsiFile? Wie speichere ich die Änderungen?