Jump to content
tylo

Au3Check.exe

Recommended Posts

correct... first i had the ref to Autoit3 like this to make it flexible for old and new versions:

pgm = props["command.go.*.au3"] .. '>%temp%\\AutoIt3.log'

That now works when you do this in the au3.properties:

; for 3.0.101

command.go.*.au3="$(autoit3dir)\autoit3.exe" /ErrorStdOut "$(FilePath)"

; for 3.0.102

command.go.*.au3="$(autoit3dir)\autoit3.exe" "$(FilePath)"

EDIT: Did you see the discussion on Scite_execute ?

Someone has made a build that has this in it and it should run programs silent...

Edited by JdeB

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Valik, just downloaded the test version that has site_execute in it and changed the LUA script.

It doesn't show the CMD window anymore but doen't return the ReturnCode when you do RC = scite_execute(pgm).

Solved that for the moment by checking the number of lines returned by AU3CHECK.

--++++++++++++++++++++++++++++++++++++++++++++++++++ 
-- Run Syntax check & AutoIt
-- shortcut Ctrl+Shift+F5 Check&Run)
function CheckRun(Script) 
 rc = 0
 _ALERT("==>Starting AU3Check for: " .. Script)
 pgm='"' .. props["SciteDefaultHome"] ..'\\au3check\\au3check.exe" "' .. Script .. '" >%temp%\\check.log  2>&1'
 --rc = os.execute('"' .. pgm .. '"')
 scite_execute('"' .. pgm .. '"')
 LineCount = 0
 for line in io.lines(os.getenv('temp') .. "\\check.log") do 
      LineCount = LineCount + 1
      print(line) 
      end   -- show output from AU3Check
 _ALERT("==>AU3Check Lines:" .. LineCount)
 if LineCount < 4 then
    _ALERT("==>Starting AutoIt3 for:" .. Script)
    pgm = props["command.go.*.au3"] .. '>%temp%\\AutoIt3.log'
    _ALERT(pgm)
    --rc = os.execute('"' .. pgm .. '"')
    scite_execute('"' .. pgm .. '"')
    for line in io.lines(os.getenv('temp') .. "\\autoit3.log") do print(line) end  -- show errors from AutoIt3
    _ALERT("==>AutoIt3 rc:" .. rc)
 end
 os.remove (os.getenv('temp') .. '\\check.log')
 os.remove (os.getenv('temp') .. '\\autoit3.log')
end

EDIT: put " around the SCRIPT on the AU3CHECK pgm line.

Edited by JdeB

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

JdeB, sounds like that scite_execute is rather kludgy to me. I also read on the list that it doesn't echo back to the output pane. To me, that's not really any more useful than just calling an AutoIt script directly (Skipping Lua) and having it ControlSend() to the output pane (That does sort of work in an inelegant way).

Tylo, I can't get -I to work at all. Every time I try to use it, I just get the usage message. Also, when it does work, can it be used multiple times, for instance '-I "First Path" -I "Second Path"'?

Share this post


Link to post
Share on other sites

Valik, just tested the patch that is posted by Steve Donovan on the scite-interest board and that gets rid of the CMD popup window... Hope they incorporate it in the standard Scite Build soon...


SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

just one thing, noticed that it didn't detect duplicate function names... (whoops)

It has to my knowledge worked since v1.00.

Would gladly help out to keep the Checkercode current....

OK, here is the source code. Project files for VC++ 6 are included, as well as the tools flex.exe and yacc.exe, but no documentation for them. Basic knowlede about (f)lex and yacc is needed to understand the code.

I've also uploaded v1.06, which reenables the -I option.

Share this post


Link to post
Share on other sites

Au3Check 1.08

- Now obeys #include-once.

- Updated Au3Check.def to use symbols from current unstable.

See first post for download.

<{POST_SNAPBACK}>

Thanks, tylo.

Share this post


Link to post
Share on other sites

Au3Check 1.09

- Added support for 'ExitLoop <level>'

- Added Flex and Yacc documentation files (first post).

- (Some internal improvements)

<{POST_SNAPBACK}>

Thanks Tylo...

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

Would it be possible to have a setting to IGNORE balanced #cs and #ce blocks?

I'm lazy and tend to test a lot of code in one SciTE buffer... so I just comment out stuff and code:

#cs

MsgBox(4096,"One test", $blah)

;....

#cs

Opt("WinTitleMatchMode", 4)

MsgBox(4096,"stuff", $foo)

Share this post


Link to post
Share on other sites

Would it be possible to have a setting to IGNORE balanced #cs and #ce blocks?

I'm lazy and tend to test a lot of code in one SciTE buffer... so I just comment out stuff and code:

#cs

MsgBox(4096,"One test", $blah)

;....

#cs

Opt("WinTitleMatchMode", 4)

MsgBox(4096,"stuff", $foo)

<{POST_SNAPBACK}>

???

Huh. au3check ignores code inside #cs #ce (even nested, like autoit). Are u asking for a settings not to ignore such blocks - i.e. ignore the #cs #ce directives themselves?

I don't think it would be that useful, because many uses #cs #ce to hold long comments, not code only. It would require some work too.

/EDIT: Ah, now I get it. You don't won't to write the #ce, and let the comment go to the end of file. Well I could make this particular error to a warning only and only issue it when using -v 1 or higher, because autoit accepts it too. When the file is included, an implicit #ce is inserted at EOF to avoid commenting out the rest of the main source.

Edited by tylo

Share this post


Link to post
Share on other sites

/EDIT: Ah, now I get it. You don't won't to write the #ce, and let the comment go to the end of file. Well I could make this particular error to a warning only ....

That would be perfect!

Share this post


Link to post
Share on other sites

Tylo, I have 2 feature requests.

1) It would be nice to see a line at the end of Au3 Check telling how many warnings/errors were encountered during processing. Something like VS .NET shows:

Test - 2 error(s), 0 warning(s)

2) Any chance to get Opt/AutoItSetOption/ControlCommand validated?

For example, something like this would produce an error:

Opt("NotAMode", 1)
; or
ControlCommand("My Title", "My Text", "My Control", "NonValidCommand")

Edit: Added ControlCommand() example.

Edited by Valik

Share this post


Link to post
Share on other sites

Tylo, I have 2 feature requests.

1) It would be nice to see a line at the end of Au3 Check telling how many warnings/errors were encountered during processing.  Something like VS .NET shows:

Yes, I did plan this, but forgot :ph34r: - will do.

2) Any chance to get Opt/AutoItSetOption/ControlCommand validated?

This is possible, but not in general, e.g: Opt($myOpt[$n], $myOptValue[$n]) cannot be validated during parsing/compile time. However, au3check could validate it if the parameter is given as a literal string, which is the normal usage. If I do this, I prefer to add a general mechanism that can set legal string values for a specified parameter in a function. The .def file could have lines

%AutoItSetOption 1 CaretCoordMode

%AutoItSetOption 1 ColorMode

...

%MouseDown 1 Left

%MouseDown 1 Right

%MouseDown 1 Middle

Share this post


Link to post
Share on other sites

Yes, I did plan this, but forgot  :ph34r:  - will do.

This is possible, but not in general, e.g: Opt($myOpt[$n], $myOptValue[$n]) cannot be validated during parsing/compile time. However, au3check could validate it if the parameter is given as a literal string, which is the normal usage. If I do this, I prefer to add a general mechanism that can set legal string values for a specified parameter in a function. The .def file could have lines

%AutoItSetOption 1 CaretCoordMode

%AutoItSetOption 1 ColorMode

...

%MouseDown 1 Left

%MouseDown 1 Right

%MouseDown 1 Middle

<{POST_SNAPBACK}>

That sounds fine. I'd forgotten about Mouse functions taking a literal string in the same way. I like the sound of that implementation, though.

Share this post


Link to post
Share on other sites

Hi Tylo,

I am trying to use your program with my prefered editor, PSPad, and to let it capture the output of your program I tried to redirect the output to a log file by using the ">" operator. However this does not seem to work as what your program puts in the file is not what it prints in the command window. Is there a way to solve this issue?

Cheers,

Angel

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...