zola:
--------------------------------------------------------------------------------
Nešlo by udělat alternativní označování, např. s nějakou klávesou?
--------------------------------------------------------------------------------
Specificke oznacovani by melo jit vyresit pomoci skriptu, jednou z moznosti by
mohly byt regulerni vyrazy.
Nasledujici pokusny skript umoznuje nastavit vyraz pro "slovo"; v pripade
potreby by slo doplnit dalsi funkce prednastavujici vyrazy a podle potreby
priradit klavesove zkratky.
Skript je pri aktivovane WSH podpore PSPadu mozne ulozit do prislusneho adresare
a zpristupnit jej v menu Skripty - Rekompilace...
vbr
cite:
--------------------------------------------------------------------------------
////... PSPad\script\JScript\customWordSel.js //////////
var module_name = "CustomWordSelect";
var module_ver = "1";
function selectWordAlphaOnly(){ // custom function for setting the word pattern
reWordCustomMemTmp = reWordCustomMem;
reWordCustomMem = "/[a-zA-Z]+/g";
selectCustomWord(false);
reWordCustomMem = reWordCustomMemTmp;
}
function selectWord(){selectCustomWord(false);}
function selectWordDlg(){selectCustomWord(true);}
var stornoValue = "\n\n\r"; // a
random sequence of system symbols - dec. code 1-31, which should not be inserted
normally
var reWordCustomMem = "/[^ ,.;:?!\'\"+*\\/<>()\\[\\]\\r\\n-]+/g";
function selectCustomWord(dlgRE){
// select the custom defined word around the cursor position
if (editorsCount()<1){return;}
var actEd = newEditor();
actEd.assignActiveEditor();
if (dlgRE == true){
var reWordCustom = InputText("Vložte reg. výraz pro SLOVO ve formátu:\n
/abc/g", reWordCustomMem, stornoValue);// \nFlags - after the search
expression between / / g - global (all matches - default); i - ignore case; gi
- global + ignore case
}else{
var reWordCustom = reWordCustomMem;
}
if (reWordCustom == stornoValue){
}else{
reWordCustomMem = reWordCustom;
var reWord = eval('new RegExp('+reWordCustom+');');
var activeLineTxt = actEd.lineText();
var origCaretX = actEd.caretX();
var origCaretY = actEd.caretY();
var actWordStartInd = -1;
var actWordEndInd = -1;
while ((matchObj = reWord.exec(activeLineTxt)) != null){
if (matchObj.index <= origCaretX-1 && origCaretX-1 <= matchObj.lastIndex){
actWordStartInd = matchObj.index;
actWordEndInd = matchObj.lastIndex;
break;
}
}
if (actWordStartInd>-1){
actEd.setCaretPos(actWordEndInd+1, origCaretY);
actEd.setBlockBegin(actWordStartInd+1, origCaretY);
actEd.setBlockEnd(actWordEndInd+1, origCaretY);
}
}
}
function Init(){
addMenuItem("vyber slovo", "", "selectWord","Ctrl+Shift+W");
addMenuItem("vyber slovo (nastav re)", "", "selectWordDlg","Ctrl+Shift+Alt+W");
addMenuItem("vyber slovo (alfa)", "", "selectWordAlphaOnly","");
}
--------------------------------------------------------------------------------
--
<http://forum.pspad.com/read.php?1,49646,49655>
PSPad freeware editor http://www.pspad.com