Jelajahi Sumber

Add files via upload

Capitan Cloud 1 tahun lalu
induk
melakukan
d5aa4b45a4
3 mengubah file dengan 64 tambahan dan 5 penghapusan
  1. 3 1
      menu.tcl
  2. 5 3
      radxide.tcl
  3. 56 1
      win.tcl

+ 3 - 1
menu.tcl

@@ -68,7 +68,7 @@ namespace eval menu {
 		$m2 add separator
 		$m2 add command -label Options -command { ::radxide::menu::edit::setup } 
 		set m3 [menu $m.help -tearoff 0]
-		$m3 add command -label About -command { tk_messageBox -title $dan(TITLE) -icon info -message "\n\nRADXIDE ver 1.1.5\n\n\nMIT Licence.\n\n\nCopyright (c) 5 Mode\n\nThe software is provided AS-IS.\n\nAuthors:\n2023-2024 RADXIDE, Daniele Bonini\n2021-2023 Alited, Alex Plotnikov\n\nhttps://5mode.com\n\n\n"}
+		$m3 add command -label About -command { tk_messageBox -title $dan(TITLE) -icon info -message "\n\nRADXIDE ver 1.1.6\n\n\nMIT Licence.\n\n\nCopyright (c) 5 Mode\n\nThe software is provided AS-IS.\n\nAuthors:\n2023-2024 RADXIDE, Daniele Bonini\n2021-2023 Alited, Alex Plotnikov\n\nhttps://5mode.com\n\n\n"}
     return $m
 	}
 
@@ -87,6 +87,8 @@ namespace eval menu {
  	  bind $ctrl "<Control-x>" "::radxide::menu::edit::makeCut"
  	  bind $ctrl "<Control-f>" "::radxide::menu::edit::find"
 		bind $ctrl "<Control-g>" "::radxide::menu::edit::GotoLine"
+		bind $ctrl "<Return>" "::radxide::win::setNewLineWithIndent"
+		bind $ctrl "<Tab>" "::radxide::win::insertTab"
 		
 	}	
 	

+ 5 - 3
radxide.tcl

@@ -28,7 +28,7 @@
 #
 ###########################################################
 
-package provide radxide 1.1.5
+package provide radxide 1.1.6
 
 set _ [package require Tk]
 wm withdraw .
@@ -55,7 +55,7 @@ namespace eval radxide {
   set DEBUG no  ;# debug mode
   
   set dan(WIN) .danwin              ;# main form
-  set dan(WORKDIR) "/home/pocahontas/.radxwork"  ;# root working dir
+  set dan(WORKDIR) "/home/YourUser/.radxwork"  ;# root working dir
   set dan(TITLE) RADXIDE
   
   # Check workdir existance..
@@ -121,6 +121,7 @@ namespace eval radxide {
   set dan(MAXFILES) 250
   set dan(MAXFILESIZE) 65534
   set dan(MAXFINDLENGTH) 50 
+  set dan(TAB_IN_SPACE) "  "
    
   # icons
   set dan(ICON) "icons/radxide.png"
@@ -161,7 +162,8 @@ namespace eval radxide {
   set menu(CUT_ENTRY_IDX) 2;
   set menu(FIND_ENTRY_IDX) 4;    
   set menu(GOTO_ENTRY_IDX) 5;
-    
+  
+  # a couplle of extension definitions..
   set dan(PhpExts) {.php .php2 .php3 .php4 .php5 .funny .inc}     ;# extensions of php files
   set dan(HtmlExts) {.html .htm}                                  ;# extensions of html files
   set dan(CssExts) {.css}                                         ;# extensions of css files

+ 56 - 1
win.tcl

@@ -1749,6 +1749,24 @@ namespace eval win {
     return $res
   }
 
+# _______________________ insert tab amenities _______________ #
+
+  proc insertTab {} {
+  
+    namespace upvar ::radxide dan dan
+    
+    set wt $dan(TEXT) 
+  
+    #set idx1 [$wt index {insert linestart}]
+    #set idx2 [$wt index {insert lineend}]
+    #set line [$wt get $idx1 $idx2]
+    
+    $wt insert {insert} $dan(TAB_IN_SPACE)
+    
+    return -code break
+  
+  }
+
 # ________________________ IntStatus _________________________ #
 
 
@@ -1881,7 +1899,6 @@ namespace eval win {
 
   }
   
-  #set mycookie(0) 0 
   proc Yview {widgets args} {
     foreach w $widgets {
       $w yview {*}$args
@@ -3185,6 +3202,44 @@ namespace eval win {
 
   }
 
+# ________________________ setNewLineWithIndent _________________________ #
+
+  proc setNewLineWithIndent {} {
+  
+    namespace upvar ::radxide dan dan
+  
+    set wt $dan(TEXT)
+
+    # getting previous line
+    set idx1 [$wt index {insert linestart}]
+    set idx2 [$wt index {insert lineend}]
+    set line [$wt get $idx1 $idx2]
+    
+    # erasing tabs, replacing them with spaces..
+    set line [string map {\t $dan(TAB_IN_SPACE)} $line]
+
+    # calculating identation..
+    set orilength [string length $line]
+    set newlength [string length [string trimleft $line]]   
+    if {$newlength <= 0} {
+      # case previous line is only spaces..
+      
+      set $newlength 0
+      set nindent 0   
+      return 0
+    } else {
+    
+      set nspacesofindent [expr $orilength - $newlength] 
+      
+      # inserintg correct identation..
+		  $wt insert [$wt index {insert}] \n[string repeat " " $nspacesofindent]  
+		  set idx3 [$wt index insert]
+		  set idx4 [$wt index "$idx3 +1 line"]
+		  ::tk::TextSetCursor $wt $idx3
+      return -code break
+    }      
+  }
+  
 # ________________________ setTextBinds _________________________ #