Right now I create a run command and add it to the menu to compile a file type.
It would be nice if I could associate a compiler program definition with a file type and then have only one 'Compile' option in the menu. The menu option would be disabled if the active file has no associated compiler program. Associating a compiler would be done through the existing file types definitions.
Associate Compiler Program with File types
Moderators: AmigoJack, bbadmin, helios, Bob Hansen, MudGuard
Associate Compiler Program with File types
It's not about setting goals. It's about soaring beyond them. Dr. Maxwell
By next week, I hope to have something like this in my collection of tools:
http://www.textpad.com/forum/viewtopic.php?t=4721
Could you provide a list of the file types and compiler command line arguments you use?
Here's a partially working script....
http://www.textpad.com/forum/viewtopic.php?t=4721
Could you provide a list of the file types and compiler command line arguments you use?
Here's a partially working script....
Code: Select all
; Requires AutoIt3.exe from http://www.hiddensoft.com/autoit3/
;===================================================================\
; Compile a file according to its document class.
; Philip Gump - 11 December 2003
;
; Command: AutoIt3.exe
; Parameters: "C:\pathToThisScript\Compile.au3" $file [any and other]
;
; YOU WILL NEED TO MODIFY SECTION THREE!
;===================================================================/
;;FIRST, determine the class (file extension) of the active document.
$titles = WinGetText("TextPad - ","")
$tmp = StringLeft($titles, StringInStr($titles, Chr(10))) ; file path
While StringInstr($tmp, ".") <> 0 ; path may contain many dots
$tmp = StringTrimLeft($tmp, StringInstr($tmp, "."))
WEnd
If StringInstr($tmp, "*") <> 0 ; file was modified since last save
$class = StringTrimRight($tmp, 3)
Else
$class = StringTrimRight($tmp, 1) ; need to remove carriage return
EndIf
; We now have the file extension (stored in variable $class)!
;SECOND, Get command line arguments ....
$file = ""
$arg2 = ""
If $cmdLine[0] == 0 Then
MsgBox(0,"Error", "This tool needs command line arguments!")
Exit
Else
$file = '"' & $cmdLine[1] & '"' ; enclose path/file in quotes
;;;$arg2 = $cmdLine[2] ; sample second argument
EndIf
;;THIRD, run the appropriate compiler
Select
Case $class = "c" OR $class = "cpp"
Run('something something ' & $file)
Case $class = "java"
Run('"c:\windows\foo\javac.exe" -classpath ' & $file)
Case $class = "au3"
Run('"C:\Program Files\AutoIt3\Aut2Exe\Aut2Exe.exe" /in ' & $file)
Case Else
MsgBox(0,"Error", "No command specified for " & $class & " file type.")
Exit
EndSelect
- talleyrand
- Posts: 624
- Joined: Mon Jul 21, 2003 6:56 pm
- Location: Kansas City, MO, USA
- Contact:
Thought I'd throw a few out for you
Code: Select all
Case $class = "c" OR $class = "cpp"
Run('c:\minGW\bin\gcc.exe ' & $file)
;; Run('c:\cygwin\bin\gcc.exe ' & $file)
;; Run(c:\borland\bcc55\Bin\bcc32.exe ' & $file)
Case $class = "py"
Run('c:\python23\python.exe ' & $file)
;; Run('c:\python22\python.exe ' & $file)
Case $class = "js" OR $class = "vbs"
Run('c:\winnt\system32\wscript.exe ' & $file)
Case $class = "pl"
Run('c:\perl\bin\perl.exe ' & $file)
I choose to fight with a sack of angry cats.
Actually, it would be simple (and cool) if the tools displayed on the tools menu could be dependent upon the file extension of the current file. Thus, if you're editing a Java file, tools such as "Compile Java", "Compile Java to DLL", "Run Java" , etc., could magically become visible. Selecting a PHP document makes all these entries disappear, but others such as "Run PHP" become visible.
I'd like this. Sounds easy to do, too.
Jill
I'd like this. Sounds easy to do, too.
Jill
I agree!!ramonsky wrote:Actually, it would be simple (and cool) if the tools displayed on the tools menu could be dependent upon the file extension of the current file.
We should be able to create global tools (available to all file classes) AND local tools (available to the active file class).
There should be one tool/button/keyboard-binding for things like "compile" and "comment/uncomment" so that we don't have to keep re-defining them which clutters up the tool menu!