summaryrefslogtreecommitdiffstats
path: root/kate/kjswrapper/samples/katekjsselect.js
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit84da08d7b7fcda12c85caeb5a10b4903770a6f69 (patch)
tree2a6aea76f2dfffb4cc04bb907c4725af94f70e72 /kate/kjswrapper/samples/katekjsselect.js
downloadtdeaddons-84da08d7b7fcda12c85caeb5a10b4903770a6f69.tar.gz
tdeaddons-84da08d7b7fcda12c85caeb5a10b4903770a6f69.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeaddons@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kate/kjswrapper/samples/katekjsselect.js')
-rw-r--r--kate/kjswrapper/samples/katekjsselect.js92
1 files changed, 92 insertions, 0 deletions
diff --git a/kate/kjswrapper/samples/katekjsselect.js b/kate/kjswrapper/samples/katekjsselect.js
new file mode 100644
index 0000000..d6a33fb
--- /dev/null
+++ b/kate/kjswrapper/samples/katekjsselect.js
@@ -0,0 +1,92 @@
+function newWindowCallBack(mainwindow) {
+ var ac=mainwindow.actionCollection();
+ action = new KAction( ac, 'kjsselect_select_action' );
+ action.text = 'Select enclosing block';
+ //action.icon = 'konsole';
+
+
+ mainwindow.selectIt = function()
+ {
+ endChars=Array();
+ endChars['\"']="\"";
+ endChars['(']=")";
+ endChars['[']="]";
+ endChars['\'']="'";
+ endChars['{']="}";
+ endChar="";
+ av=this.viewManager().activeView();
+ d=KATE.DocumentManager.activeDocument();
+
+ lineCnt=d.numLines();
+ x=av.cursorColumn();
+ y=av.cursorLine();
+ line=d.textLine(y);
+ sy=y;
+ sx=x-1;
+ while (true) {
+ if (sx<0) {
+ sy=sy-1;
+ if (sy<0) {
+ d.selectAll();
+ return;
+ }
+ line=d.textLine(sy);
+ while (line.length==0) {
+ sy=sy-1;
+ if (sy<0) {
+ d.selectAll();
+ return;
+ }
+ line=d.textLine(sy);
+ }
+ sx=line.length-1;
+
+ }
+ if (
+ (line[sx]=="\"") ||
+ (line[sx]=="'") ||
+ (line[sx]=="(") ||
+ (line[sx]=="[") ||
+ (line[sx]=="{")
+ ) {
+ endChar=endChars[line[sx]];
+ break;
+ }else sx--;
+ }
+
+
+ alert("Searching end");
+ ex=x;
+ ey=y;
+ line=d.textLine(y);
+ while (true) {
+ if (ex>=(line.length-1)) {
+ ey=ey+1;
+ if (ey>=lineCnt) {
+ d.selectAll();
+ return;
+ }
+ line=d.textLine(ey);
+ while (line.length==0) {
+ ey=ey+1;
+ if (ey>=lineCnt) {
+ d.selectAll();
+ return;
+ }
+ line=d.textLine(ey);
+ }
+ ex=0;
+ }
+ if (line[ex]==endChar)
+ break; else ex++;
+ }
+ d.setSelection(sy,sx,ey,ex);
+
+ }
+
+ action.connect( action, 'activated()', mainwindow, 'selectIt' );
+
+}
+
+setWindowConfiguration(null,newWindowCallBack,null);
+