Hi Manuel,
Mittlerweile habe ich mein Plugin fertig und möchte es dir hier noch einmal vorstellen, vielleicht kannst du es ja auch gebrauchen ;-)
// = Module Info =
// $createdby: driehle <http://tutorial.riehle-web.com>
// $lastedit: Sun, 25 Dec 2005 15:31:05 UTC, driehle
module_name = "Letztes Update anpassen";
module_ver = "0.1";
// = Description =
// Replaces the first line starting containig "// $lastedit:"
// with "// $lastedit: <date/time>, <user>"
// = User Configuration =
user_name = "driehle"; // Feel free to choose
search_in_lines = 20; // Search in first x lines
date_format = "GMT"; // "GMT", "Locale" or "default"
// = Main Function =
function update_save() {
var obj1 = newEditor();
obj1.assignActiveEditor();
var act_date = new Date();
var act_line = obj1.caretX();
var act_char = obj1.caretY();
for(var i = 1; i < search_in_lines; i ++)
{
obj1.setCaretPos(0,i);
var obj_text = obj1.lineText();
var ausdruck = /([^\$]*)\$last(e)dit: /;
if(ausdruck.exec(obj_text))
{
var new_obj_text = RegExp.$1 + "$" + "last" + "edit: "
if(date_format.toLowerCase() == "locale")
{
new_obj_text += act_date.toLocaleString();
}
else if(date_format.toLowerCase() == "gmt")
{
new_obj_text += act_date.toGMTString();
}
else
{
new_obj_text += act_date.getYear() + "-" + act_date.getFullYear() + "-"
+ act_date.getDate() + " " + act_date.getHours() + ":"
+ act_date.getMinutes() + ":" + act_date.getSeconds();
}
new_obj_text += ", " + user_name;
obj1.lineText("");
obj1.lineText(new_obj_text);
i = search_in_lines;
}
}
obj1.setCaretPos(act_line, act_char);
obj1.saveFile()
}
// = Initialisation =
function Init() {
addMenuItem("Speichern", "Letztes Update anpassen", "update_save", "Ctrl+S")
}
Als Anmerkung möchte ich noch hinzufügen: Man muss in den Einstellungen von PSPad die Tastaturkombination Strg+S für Speichern entfernen, wenn man über Strg+S das eigene Script aurufen möchte.
Allerdings gibt es noch zwei "Bugs":
- Beginnt eine Zeile mit " $lastupdate: usw.", so wird diese ersetzt durch " $lastupdate: usw." - das ist nicht so, wenn die Zeile mit einem anderen Zeichen als einem Leerzeichen beginnt... Kannst du dir das erklären?
- Durch das setCaretPos ändert sich der Scrollbereich im Fenster, ich kann zwar die Courser Position am Ende wiederherstellen, nicht jedoch die Scrollposition. Ich vermute, dass geht nicht, oder?
MfG, Dennis.
--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Die FlatBox 0.3 mit Dokumentation ist da!
Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet! (Anita Berres)
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Die FlatBox 0.3 mit Dokumentation ist da!
Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet! (Anita Berres)