Autor Thema: Hyperlinks zu Metacode  (Gelesen 1943 mal)

krach21

  • Member
Hyperlinks zu Metacode
« am: Montag, 7. März 2016, 01:55 »
Liebe Leute,

ich arbeite seit ein paar Jahren mit Python um algorithmisch Lilypondcode zu generieren. Ich habe mir da schon viele Helfer und Strukturen gebastelt und das komponieren damit macht großen Spaß.

Seit einiger Zeit überlege ich, ob es vielleicht irgendwie möglich sein könnte, das Point-And-Click-Prinzip, wie in Frescobaldi auch auf meinen Pythoncode anzuwenden, der seinerseits die .ly-Datei erzeugt.

Den Texteditor zu scripten und die Generation der Noten innerhalb Pythons zurückzuverfolgen ist machbar–

– aber ich hab keine Ahnung, wie man Lilypond dazu bringen könnte, den Hyperlink auf der Note nicht in die Lylipond-Datei zu setzen sondern in eine beliebige, durch den Nutzer bestimmbare, andere Datei.

Hat jemand eine Idee?

Danke und lieben Gruß

Kostja
« Letzte Änderung: Montag, 7. März 2016, 02:03 von Kostja »

krach21

  • Member
Re: Hyperlinks zu Metacode
« Antwort #1 am: Montag, 7. März 2016, 17:07 »
Ok. Es gibt folgende zwei Funktionen dafür:

\sourcefilename und \sourcefileline

Jetzt bleibt noch die Frage, ob man statt eines einzelnen Integers für die Zeile im Sourcefile auch eine Liste eingeben könnte, für den Fall, dass die Note durch einen Funktionsaufruf von einem Funktionsaufruf von einem Funktionsaufruf entstanden ist.

Gruß
« Letzte Änderung: Dienstag, 8. März 2016, 18:30 von Kostja »

fugenkomponist

  • Member
Re: Hyperlinks zu Metacode
« Antwort #2 am: Montag, 7. März 2016, 17:17 »
Ich glaube kaum, dass das so ohne weiteres geht, weil beide Funktionen schon im Lexer definiert werden, d. h. es sind nicht einfach ersetzbare Schemefunktionen, sondern fester Teil der Syntax.

Edit: Ergibt für mich anders auch erstmal wenig Sinn, wie soll sich denn ein Link auf mehrere Stellen im Code verhalten, wenn man drauf klickt?

krach21

  • Member
Re: Hyperlinks zu Metacode
« Antwort #3 am: Dienstag, 8. März 2016, 18:30 »
Vielen Dank für die Antwort. Also ich stelle mir das so vor, dass der Link einen Skript für einen Texteditor aufruft (z.B. SublimeText) und in diesem Texteditor dann mit Split-View in 1-5 Spalten angezeigt wird, welche Funktionen sich gegenseitig aufgerufen und im Resultat das Objekt, auf das geklickt wurde, hervorgerufen haben.

Der Traceback ist innerhalb von z.B. Python einfach zu machen. Wenn es nicht möglich ist es mit Split-View in einem Fenster anzuzeigen, dann wäre es noch denkbar, einfach mehrere Fenster nebeneinander zu öffnen.

Das klingt erstmal vielleicht nach einer unnötigen Spielerei. Aber wenn man algorithmisch arbeitet, hat man quasi immer Verschachtelung und Iteration, das ist ja die Stärke dieser Herangehensweise. Wenn sich das geschilderte irgendwie machen ließe, hätte man wirklich eine tolle Verbindung von graphischer Notenoberfläche und Codehintergrund geschaffen, wie es sie in dieser Form, glaube ich, auch noch in keiner anderen Software gibt.

Wo wird denn eigentlich definiert, wie welcher Texteditor aufgerufen wird, wenn man auf den Link klickt?
« Letzte Änderung: Dienstag, 8. März 2016, 18:40 von Kostja »

fugenkomponist

  • Member
Re: Hyperlinks zu Metacode
« Antwort #4 am: Dienstag, 8. März 2016, 18:51 »
Wo wird denn eigentlich definiert, wie welcher Texteditor aufgerufen wird, wenn man auf den Link klickt?
Das muss dein PDF-Viewer oder, falls nicht der, dein Betriebssystem wissen; d. h. es hängt viel davon ab, was du da nutzt. Hier wird ein bisschen was dazu erklärt, es geht u. a. um das Hilfsprogramm lilypond-invoke-editor, was da seine Finger im Spiel hat.