Um die Zeilennummer zu erhalten, würden Sie unter der Annahme l
l.begin.line
verwenden.
Allgemeiner angesichts der Lage |file:///randomfile.java|(0,11817,<1,0>,<185,1>)
stellen die Zahlen (offset, length, < startingLine, startingColumn >, < endingLine, endingColumn>)
, so:
0
die offset
in die angegebene Datei ist, wo dieser Stelle beginnt;
11817
ist die length
durch die Lage bedeckt
Diese erlauben Ihnen einen Ort zu verwenden Teil einer Datei zu identifizieren, zum Beispiel eine bestimmte Klasse oder Methodendefinition.
1
ist die erste Linie (startingLine
) in der Lage enthalten
0
ist die erste Spalte (startingColumn
) in der Lage enthalten
185
ist die letzte Zeile (endingLine
) in der Lage enthalten
1
ist die letzte Spalte (endingColumn
), die an dem Standort enthalten ist
Der Offset und die Länge definieren den tatsächlichen Teil der Datei, die von der Position abgedeckt wird, so dass Sie diese als optional anzeigen können, und sie müssen nicht enthalten sein. Es ist auch nicht immer offensichtlich, zumindest was die Spalte betrifft, was der richtige Wert ist, da Tabulatorzeichen in einem Editor auf mehrere Zeichen erweitert werden können.
Zu jedem dieser Teile des Standorts zuzugreifen, verwenden Sie die folgenden Schritte aus:
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).offset;
int: 0
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).length;
int: 11817
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).begin;
tuple[int line,int column]: <1,0>
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).begin.line;
int: 1
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).begin.column;
int: 0
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).end;
tuple[int line,int column]: <185,1>
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).end.line;
int: 185
rascal>|file:///randomfile.java|(0,11817,<1,0>,<185,1>).end.column;
int: 1
Sie können weitere Informationen finden Sie hier, einschließlich Dokumentation, wie die anderen Teile des Standorts zugreifen zu können, wie das Schema verwendet in der URI oder den Namen der referenzierten Ressource/Datei: http://tutor.rascal-mpl.org/Rascal/Rascal.html#/Rascal/Expressions/Values/Location/Location.html
Vielen Dank für die ausführliche Antwort. Genau das, wonach ich gesucht habe. Offset in die Datei wird in Bytes oder Zeichen ausgedrückt? –