Dennis: PSPad - Plugin für lastupdate Änderungen

Beitrag lesen

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)