Добавлена передача сигналов для закрытия запущенного процесса
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
				
			This commit is contained in:
		| @@ -120,7 +120,6 @@ Or type "projman" into terminal, Or choose the name of the program "Projman" on | |||||||
| - Ctrl-N - Create new file | - Ctrl-N - Create new file | ||||||
| - Ctrl-O - Open file | - Ctrl-O - Open file | ||||||
| - Ctrl-W - Close editor (file) | - Ctrl-W - Close editor (file) | ||||||
| - Ctrl-K - Open folder |  | ||||||
| - Ctrl-Q - Quit from ProjMan | - Ctrl-Q - Quit from ProjMan | ||||||
| - Ctrl-J - Show procedures (functions) list for navigation in open editor | - Ctrl-J - Show procedures (functions) list for navigation in open editor | ||||||
| - Ctrl-L - Find and display files where the variable is defined, the name of which is located under the cursor in the editor | - Ctrl-L - Find and display files where the variable is defined, the name of which is located under the cursor in the editor | ||||||
| @@ -134,6 +133,10 @@ Or type "projman" into terminal, Or choose the name of the program "Projman" on | |||||||
| - Ctrl-G - Go to line dialog | - Ctrl-G - Go to line dialog | ||||||
| - Ctrl-C - Copy selected text into buffer | - Ctrl-C - Copy selected text into buffer | ||||||
| - Ctrl-V - Paste text from buffer | - Ctrl-V - Paste text from buffer | ||||||
|  | - Ctrl-R - Open terminal for edited file | ||||||
|  | - Ctrl-Z - Send SIGTSTP signal  | ||||||
|  | - Ctrl-D - Send SIGINT signal  | ||||||
|  | - Ctrl-C - Send SIGKILL signal  | ||||||
|  |  | ||||||
| - Alt-P - Show/Hide the file tree panel | - Alt-P - Show/Hide the file tree panel | ||||||
| - Alt-W - Delete the current word | - Alt-W - Delete the current word | ||||||
| @@ -142,6 +145,7 @@ Or type "projman" into terminal, Or choose the name of the program "Projman" on | |||||||
| - Alt-R - Delete current line | - Alt-R - Delete current line | ||||||
| - Alt-Y - Copy current line into buffer | - Alt-Y - Copy current line into buffer | ||||||
| - Alt-S - Split the edited window horizontally | - Alt-S - Split the edited window horizontally | ||||||
|  | - Alt-K - Open folder | ||||||
|  |  | ||||||
| ## Credits | ## Credits | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							| @@ -15,7 +15,7 @@ projman (2.0.0-alpha18) stable; urgency=medium | |||||||
|  |  | ||||||
|   *  Поправил тему оформления |   *  Поправил тему оформления | ||||||
|   *  Исправлена работа в windows |   *  Исправлена работа в windows | ||||||
|   *  Уменьшил колдичество выводимой отладочной информации |   *  Уменьшил количество выводимой отладочной информации | ||||||
|   *  Добавлено определение пути до git в зависимости от платформы. |   *  Добавлено определение пути до git в зависимости от платформы. | ||||||
|   *  Исправлено создание файла конфигурации |   *  Исправлено создание файла конфигурации | ||||||
|   *  Добавлены номера версий в вызов tclsh8.6 и wish8.6. |   *  Добавлены номера версий в вызов tclsh8.6 и wish8.6. | ||||||
| @@ -387,4 +387,3 @@ projman (2.0.0-alfa0) stable; urgency=medium | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -191,18 +191,24 @@ namespace eval Highlight {} { | |||||||
|         ctext::addHighlightClass $txt bool #3e803b {null false true} |         ctext::addHighlightClass $txt bool #3e803b {null false true} | ||||||
|     } |     } | ||||||
|     proc ExecuteColorized {txt} { |     proc ExecuteColorized {txt} { | ||||||
|         ctext::addHighlightClassForRegexp $txt flags orange {\s-[a-zA-Z]+} |         # ctext::addHighlightClassForRegexp $txt flags orange {\s-[a-zA-Z]+} | ||||||
|         ctext::addHighlightClass $txt stackControl #19a2a6 [info commands] |         # ctext::addHighlightClass $txt stackControl #19a2a6 [info commands] | ||||||
|         ctext::addHighlightClass $txt widgets #9d468d [list canvas ctext button entry label text labelframe frame toplevel scrollbar checkbutton canvas listbox menu menubar menubutton  radiobutton scale entry message tk_chooseDir tk_getSaveFile  tk_getOpenFile tk_chooseColor tk_optionMenu ttk::button ttk::checkbutton ttk::combobox ttk::entry ttk::frame ttk::intro ttk::label ttk::labelframe ttk::menubutton ttk::treeview ttk::notebook ttk::panedwindow ttk::progressbar ttk::radiobutton ttk::scale ttk::scrollbar ttk::separator ttk::sizegrip ttk::spinbox ] |         # ctext::addHighlightClass $txt widgets #9d468d [list canvas ctext button entry label text labelframe frame toplevel scrollbar checkbutton canvas listbox menu menubar menubutton  radiobutton scale entry message tk_chooseDir tk_getSaveFile  tk_getOpenFile tk_chooseColor tk_optionMenu ttk::button ttk::checkbutton ttk::combobox ttk::entry ttk::frame ttk::intro ttk::label ttk::labelframe ttk::menubutton ttk::treeview ttk::notebook ttk::panedwindow ttk::progressbar ttk::radiobutton ttk::scale ttk::scrollbar ttk::separator ttk::sizegrip ttk::spinbox ] | ||||||
|         ctext::addHighlightClassWithOnlyCharStart $txt vars #4471ca "\$" |         # ctext::addHighlightClassWithOnlyCharStart $txt vars #4471ca "\$" | ||||||
|         ctext::addHighlightClass $txt variable_funcs gold {set global variable unset} |         # ctext::addHighlightClass $txt variable_funcs gold {set global variable unset} | ||||||
|         ctext::addHighlightClassForSpecialChars $txt brackets green {[]{}()} |         # # ctext::addHighlightClassForSpecialChars $txt brackets green {[]{}()} | ||||||
|         ctext::addHighlightClassForRegexp $txt paths lightblue {\.[a-zA-Z0-9\_\-]+} |         # ctext::addHighlightClassForRegexp $txt namespaces #4f64ff {::} | ||||||
|         ctext::addHighlightClassForRegexp $txt namespaces #4f64ff {::} |         # ctext::addHighlightClassForRegexp $txt qoute #b84a0c {("|'|`).+("|'|`)} | ||||||
|         ctext::addHighlightClassForSpecialChars $txt qoute #b84a0c {"'`} |         # ctext::addHighlightClassForRegexp $txt colors #68ceff {(#)(\w)+?(\s|$)}  | ||||||
|         ctext::addHighlightClassForRegexp $txt colors #68ceff {(#)(\w)+?(\s|$)}  |         # ctext::addHighlightClassForRegexp $txt comments #666666 {(^|;)\s*(#)[^\n\r]*} | ||||||
|         ctext::addHighlightClassForRegexp $txt comments #666666 {(^|;)\s*(#)[^\n\r]*} |         # ctext::addHighlightClass $txt bool #3e803b {null false true} | ||||||
|         ctext::addHighlightClass $txt bool #3e803b {null false true} |         # ctext::addHighlightClassForRegexp $txt paths lightblue {(\s)([\w]+)(=)} | ||||||
|  |         # ctext::addHighlightClassForSpecialChars $txt tags lightgreen {<>/} | ||||||
|  |         # ctext::addHighlightClassForRegexp $txt tags #199100 {/.+\s} | ||||||
|  |         ctext::addHighlightClassForRegexp $txt gopaths lightblue {(.+?):(\d+):(\d+):} | ||||||
|  |         ctext::addHighlightClassForRegexp $txt paths lightblue {(\\|/|\.|^)((\w)|(\.)|(/)|([\.\w]))+?\s} | ||||||
|  |         ctext::addHighlightClass $txt compile_errors #ff5050 {error Error ERROR invalid undefined cannot} | ||||||
|  |         ctext::addHighlightClassForRegexp $txt url lightblue {\w+://\w.+\w+} | ||||||
|     } |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -893,7 +893,12 @@ proc Run {w filePath} { | |||||||
|     cd [file dirname $filePath] |     cd [file dirname $filePath] | ||||||
|     set pipe [open "|$fullCommand 2> [file join [file dirname $filePath] errors]" "r"] |     set pipe [open "|$fullCommand 2> [file join [file dirname $filePath] errors]" "r"] | ||||||
|     set f [open [file join [file dirname $filePath] errors] "r"] |     set f [open [file join [file dirname $filePath] errors] "r"] | ||||||
|  |     set processPID [pid $pipe] | ||||||
|  |      | ||||||
|  |     bind $w.frame.text <Control-c> [list SendSignal $processPID "SIGKILL"] | ||||||
|  |     bind $w.frame.text <Control-z> [list SendSignal $processPID "SIGTSTP"] | ||||||
|  |     bind $w.frame.text <Control-d> [list SendSignal $processPID "SIGINT"] | ||||||
|  |       | ||||||
|     # set pipe [open "|$command $filePath" "r"] |     # set pipe [open "|$command $filePath" "r"] | ||||||
|     # set f [open [file join ~ tmp errors] "r"] |     # set f [open [file join ~ tmp errors] "r"] | ||||||
|     fileevent $pipe readable [list DebugInfo $w.frame.text $pipe $f] |     fileevent $pipe readable [list DebugInfo $w.frame.text $pipe $f] | ||||||
| @@ -909,7 +914,7 @@ proc DebugInfo {widget file f} { | |||||||
|             puts $msg |             puts $msg | ||||||
|             $widget insert "end-4l linestart" "[::msgcat::mc "Program failed"]: $msg\n"; |             $widget insert "end-4l linestart" "[::msgcat::mc "Program failed"]: $msg\n"; | ||||||
|         } else { |         } else { | ||||||
|             Highlight::ExecuteColorized $widget |             # Highlight::ExecuteColorized $widget | ||||||
|             puts $msg |             puts $msg | ||||||
|             $widget see "end-1l lineend" |             $widget see "end-1l lineend" | ||||||
|             $widget delete "end-1l lineend" end |             $widget delete "end-1l lineend" end | ||||||
| @@ -917,9 +922,10 @@ proc DebugInfo {widget file f} { | |||||||
|            # $widget insert end "[::msgcat::mc "Program finished successfully"]\n" |            # $widget insert end "[::msgcat::mc "Program finished successfully"]\n" | ||||||
|         } |         } | ||||||
|         Highlight::ExecuteColorized $widget |         Highlight::ExecuteColorized $widget | ||||||
|  |         # close $f | ||||||
|     } else { |     } else { | ||||||
|         Highlight::ExecuteColorized $widget |         # Highlight::ExecuteColorized $widget | ||||||
|         $widget insert "end-4l linestart" [read $file] |         $widget insert "end-4l linestart" "-->> [read $file]" | ||||||
|     } |     } | ||||||
|     while {[gets $f line]>=0} { |     while {[gets $f line]>=0} { | ||||||
|         Highlight::ExecuteColorized $widget |         Highlight::ExecuteColorized $widget | ||||||
| @@ -932,6 +938,33 @@ proc DebugInfo {widget file f} { | |||||||
|     # $widget configure -state disabled |     # $widget configure -state disabled | ||||||
| } | } | ||||||
|  |  | ||||||
|  | # Функция для отправки сигнала процессу | ||||||
|  | proc SendSignal {pid signal} { | ||||||
|  |     global tcl_platform | ||||||
|  |      | ||||||
|  |     if {$tcl_platform(platform) eq "unix"} { | ||||||
|  |         # На Unix-системах | ||||||
|  |         switch -- $signal { | ||||||
|  |             "SIGINT" { exec kill -INT $pid }  ; # Ctrl+C | ||||||
|  |             "SIGTERM" { exec kill -TERM $pid } ; # Завершение | ||||||
|  |             "SIGTSTP" { exec kill -TSTP $pid } ; # Ctrl+Z (приостановка) | ||||||
|  |             "SIGKILL" { exec kill -KILL $pid } ; # Принудительное завершение | ||||||
|  |         } | ||||||
|  |     } else { | ||||||
|  |         # На Windows | ||||||
|  |         switch -- $signal { | ||||||
|  |             "SIGINT" - "SIGTERM" {  | ||||||
|  |                 # Используем taskkill для завершения | ||||||
|  |                 catch {exec taskkill /PID $pid /T}  | ||||||
|  |             } | ||||||
|  |             "SIGKILL" {  | ||||||
|  |                 # Принудительное завершение на Windows | ||||||
|  |                 catch {exec taskkill /PID $pid /T /F}  | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
| # Правка файла настроек | # Правка файла настроек | ||||||
| proc Settings {} { | proc Settings {} { | ||||||
|     global dir |     global dir | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user