Autoit (scite) does not remember it's GUI metrics

Recommended Posts

AndyS01 0

AndyS01 0

I recently installed AutoIt and SciTE4AutoIT and when I edit a file and change the editor's screen position and size, then exit and edit the file again, the editor reverts to the original GUI metrics. My laptop is running Windows 7 Professional, 64 bit OS. I have a laptop with the same software, but 32 bit OS and it works OK.

Similar Content

1/02/2018: Uploaded a new SciTe4AutoIt3.exe v19.102.1901.0 installer.
This version contains the bugfix release for SciTE 4.1.2.
There has been a major update for Tidy allowing now inline comments without them being shifted to the left by default.See this thread for the total story about the new behavior and the added options
==> SciTE4AutoIt3 v19.102.1901.0
Enjoy,
Jos

Addition/Changes/Fixes in the current installer:

--------------------------------------------------------------------------------------------------
2-1-2019
*** Merged the SciTE v 4.1.2 by Neil Hodgson with our own version of SciTE. (Jos)
- Fixed regex issue for Alt+F in AutoItTools.lua
- Fixed another regex issue for several functions in AutoItTools.lua
- Fixed Header parameters now showing None when none are
- Fixed jump to function to also jump to the right Column again.
- Restored AutoItTools:Copy_BookMarks() functionality
*** Updated AutoIt3Wrapper v19.102.1901.0 (Jos)
- 18.703.1808.1 renamed "#AutoIt3Wrapper_Au3Stripper_Stop_OnError" to "#AutoIt3Wrapper_Au3Stripper_OnError" with now as options S,C,F,Stop,Continue,ForceUse
- 18.708.1148.1 Added #include <WinAPIFiles.au3> back in the included file list to ensure backward compatibility.
- 18.708.1148.2 Added "Tidy_Stop_OnError" support to the AutoIt3Wrapper.INI file.
Changed HiDPI settings for Win 10 compatibility.
- 18.708.1148.4 Added logic to be able to display Console Output of script that have #RequireAdmin while SciTE runs at normal level.
- 18.708.1148.5 Added support to allow to Stop Execution or Restart for scripts with #RequireAdmin while SciTE runs at normal level.
It won't hang anymore when you reply No on the UAC and detect the elevated process didn;t start.
- 18.708.1148.6 Reverted HiDPI changes made in 18.708.1148.2 as problems are reported. needs investigation.
- 18.708.1148.7 Changed check for RequireAdmin AutoIt3Wrapper startup.
- 18.708.1148.8 Added #include <APIResConstants.au3> for backwards compatibility with AutoIt3 v3.3.14.x.
*** Updated Au3Stripper v19.102.1901.0 (Jos)
- 18.708.1148.1 Fixed issue finding variable names on multiline statements
- 18.708.1148.2 Added check for ending \ in the AutoIt3Dir, and remove it when there, to avoid duplication of includes.
- recompiled with PellesC 6 to make it compatible with WinXP again.
*** Updated SciTEConfig v19.102.1901.0 (Jos)
- 18.708.1148.1 Update to allow comments in *.SciTEConfig file lines. (JPM)
This update includes the updated shemes to allow changing between them.
*** Updated Tidy v19.102.1901.0 (Jos)
- 18.708.1148.1: Fix bug handling Directivelines ending with continuation character
- 18.708.1148.2: Fixed indentation when a "None breaking space"(C2A0) character is used in a UTF file.
- 18.708.1148.3: Fix bug when a continuation line starts with +x, where is would add a space between +- and number.
- 18.708.9999.x: Rewrite of some internal code to allow inlinecomments to remain at their current position.
Details can be found in this post: https://www.autoitscript.com/forum/topic/196221-tidy-major-update-27-10-requesting-help-with-testing/
- 18.708.9999.22: Released to Beta.
- 18.708.9999.23: Added option to totally skip commentblocks so now the options are:
#Tidy_Parameters=/tcb=0 =>only indent the whole commentblock (default)
/tcb or /tcb=1 =>Tidy inside commentblock
/tcb=-1 =>leave whole commentbock alone
Tidy.INI:#--> Tidy commentblock 0=only indent the whole commentblock (default=0)
# 1=Tidy inside commentblock
# -1=leave whole commentbock alone
Tidy_commentblock=0
- 18.708.9999.24: Added check for ending \ in the AutoIt3Dir and remove it when there.
- recompiled with PellesC 6 to make it compatible with WinXP again.
--------------------------------------------------------------------------------------------------
==> ScitillaHistory page containing all SciTE-Scintilla updates.
==> Visit the SciTE4AutoIt3 Download page for the latest versions
==> Check the online documentation for an overview of all extra's you get with this installer.

I've noticed in several YouTube tutorials about AutoIt that every time the instructor types EndFunc a comment "<==(function name)" is automatically added. I understand that Tidy will do this after the fact but what I'm writing about happens in real time. Where's the setting for this? Thank you.

This lua script gives you the ability, to search for selected text or word from cursor in an search engine or on an search site of your choice.You can select the engine/site from a list, that you have defined in your user properties.
To get the right call for your search engine, open the engine and search for one word. You need the url without the searched word. Write to your properties an display name for this engine and, separated by a comma, the url. See my example in the script header.
For the list with search sites, you need display name and site address (without http://).
It will searched for the full selected text or, if none selection exists, for the word touched by the cursor. You can allow in the properties, that also will recognized words with dots (like objVar.Property).
The script uses the shell.dll. But if you don't have installed it, the browser will opened with an command line call. Thats why the command window will pop up for a short moment.
You'll find details for installation and key bindings inside the script. Look for free command numbers in SciTE. By default installation, the numbers must be greater than 35 (max. 49).
-- TIME_STAMP 2018-09-02 09:22:03
--[[
This script publicates two functions
- InetSearch.Engine()
You can search for the selected/touched text in SciTE and can select a search engine of your choice.
- InetSearch.Site()
You can search for the selected/touched text in SciTE with a defined search engine and can select a search site of your choice.
Copy this script in your Lua scripts folder.
Load this file in the Lua startup: dofile("Full\\Path\\InetSearch.lua")
Add
in "SciTEUser.properties" the following properties with search engines and search sites of your choice:
#~ Inet Search Settings
#~ List of engines. "display-name,search-url" (if not set: google.com will used)
#~ If only one entry exists, the selection box will not shown.
Inet.Search.Engines= \
Google,https://www.google.de/search?q=| \
MetaGer,https://metager.de/meta/meta.ger3?focus=web&eingabe=| \
Bing,https://www.bing.com/search?q=| \
Ask,https://de.ask.com/web?q=| \
Yandex,https://www.yandex.com/search/?text=
#~ Engine for site based search
#~ Use display name from engines list (if not set: google.com will used)
Inet.Search.SearchOnSite.Engine=Google
#~ List of sites for site based search. "display-name,site-url"
#~ If not set, it searches without a special site.
#~ If only one entry exists, the selection box will not shown.
Inet.Search.SearchOnSite.Sites= \
AutoIt DE,autoit.de| \
AutoIt EN,autoitscript.com| \
MSDN,msdn.microsoft.com
#~ By default, words will detected without dots. (0)
#~ You can allow dots, to detect object variables with properties or methods too.
Inet.Search.Allow.Punctuation=1
#~ Search commands
#~ Search word from cursor with engine selection
command.name.9.*=Search with engine selection
command.9.*=dostring InetSearch.Engine()
command.mode.9.*=subsystem:lua,savebefore:no
command.shortcut.9.*=Ctrl+Shift+F8
#~ Search word from cursor with search site selection
command.name.5.*=Search with site selection
command.5.*=dostring InetSearch.Site()
command.mode.5.*=subsystem:lua,savebefore:no
command.shortcut.5.*=Ctrl+Shift+F9
--]]
InetSearch = {}
InetSearch.Handler = EventClass:new(Common)
do
------------------------------------------------------------------------------------------------
local engineFallback = "Google,https://www.google.com/search?q=" -- default search engine: "display-name,search-url"
local search_type = nil
local engine_url = nil
local search_item = nil
local search_site = nil
local tableSelection = nil
local list_type = 16
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------- Load library protected
local require_protected = function(_lib)
local loaded_lib
if pcall(function() loaded_lib = require(_lib) end) then return loaded_lib
else return nil end
end --> require_protected
------------------------------------------------------------------------------------------------
local shell = require_protected("shell") -- loads the shell library if exists
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------ Starts the search
local RunSearch = function(_item, _url, _site)
local sSite = ''
if _site ~= nil then sSite = "%20site:".._site end
local sCmd = _url.._item..sSite
if shell then shell.exec(sCmd)
else os.execute('start "" "'..sCmd..'"') end
end --> RunSearch
------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------- Show the user list
local ShowSelectionList = function()
-- create the selection list (display names from engines or sites)
local sep, list = '_', tableSelection[1][1]
for i = 2, #tableSelection do
list = list..sep..tableSelection[i][1]
end
local sep_tmp = editor.AutoCSeparator
editor.AutoCSeparator = string.byte(sep)
editor:UserListShow(list_type, list)
editor.AutoCSeparator = sep_tmp
end --> ShowSelectionList
------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------- Select the user list
function InetSearch.Handler:OnUserListSelection(_tp, _sel)
if _tp == list_type then
local url
for i = 1, #tableSelection do
if tableSelection[i][1] == _sel then
url = tableSelection[i][2]
break
end
end
if search_type == 'site' then
search_site = url
else
search_site = nil
engine_url = url
end
RunSearch(search_item, engine_url, search_site)
end
end
------------------------------------------------------------------------------------------------
--------------------------------------------------------- List of search engines from properties
local GetEngines = function()
local sEngines = props['Inet.Search.Engines']
-- without settings, the default search engine will used
if sEngines == '' then sEngines = engineFallback end
local tEngines = {}
for entry in sEngines:gmatch('([^|]+)|-') do
for name, url in entry:gmatch('([^,]+),(.+)') do
table.insert(tEngines, {name, url})
end
end
return tEngines
end --> GetEngines
------------------------------------------------------------------------------------------------
----------------------------------------------------------- List of search sites from properties
local GetSearchSites = function()
local sSites = props['Inet.Search.SearchOnSite.Sites']
if sSites == '' then return nil end
local tSites = {}
for entry in sSites:gmatch('([^|]+)|-') do
for name, url in entry:gmatch('([^,]+),(.+)') do
table.insert(tSites, {name, url})
end
end
return tSites
end --> GetSearchSites
------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------- Get search item
local GetSearchItem = function()
local sSelect = editor:GetSelText()
if sSelect ~= '' then return sSelect end
local allowDots = false
if props['Inet.Search.Allow.Punctuation'] == '1' then allowDots = true end
local caret = editor.CurrentPos
local iLine = editor:LineFromPosition(caret)
local iZero = editor:PositionFromLine(iLine)
editor:LineEnd()
local iLineEnd = editor.CurrentPos
editor.CurrentPos = caret
editor:SetSelection(caret,caret)
local iStart = editor:WordStartPosition(caret)
if allowDots then
while iStart > iZero and editor:textrange(iStart -1, iStart) == '.' do
iStart = editor:WordStartPosition(iStart -1)
end
end
local iEnd = editor:WordEndPosition(caret)
if allowDots then
while iEnd < iLineEnd and editor:textrange(iEnd, iEnd +1) == '.' do
iEnd = editor:WordEndPosition(iEnd +1)
end
end
sSelect = editor:textrange(iStart, iEnd):gsub('^([^%w]+)', ''):gsub('([^%w]+)$', '')
return sSelect
end --> GetSearchItem
------------------------------------------------------------------------------------------------
------------------------------------------------------------------- Search with engine selection
local SearchEngineBased = function()
search_type = 'engine'
search_item = GetSearchItem()
if search_item == '' then return nil end
tableSelection = GetEngines()
-- only one entry: selection box will not shown
if #tableSelection == 1 then
RunSearch(search_item, tableSelection[1][2], nil)
else
ShowSelectionList()
end
end --> SearchEngineBased
------------------------------------------------------------------------------------------------
-------------------------------------------------------------- Search with search site selection
local SearchSiteBased = function()
search_type = 'site'
search_item = GetSearchItem()
if search_item == '' then return nil end
-- get the default engine for site based searching
for _, url in engineFallback:gmatch('([^,]+),(.+)') do
engine_url = url
end
-- if is set, use search engine from properties
local sEngine = props['Inet.Search.SearchOnSite.Engine']
if sEngine ~= '' then
local tEngines = GetEngines()
for i = 1, #tEngines do
if tEngines[i][1] == sEngine then
engine_url = tEngines[i][2]
break
end
end
end
tableSelection = GetSearchSites()
-- if none entries for search sites, use simple search
if tableSelection == nil then
RunSearch(search_item, engine_url, nil)
else
-- only one entry: selection box will not shown
if #tableSelection == 1 then
RunSearch(search_item, engine_url, tableSelection[1][2])
else
ShowSelectionList()
end
end
end --> SearchSiteBased
------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------- Publicate functions
InetSearch.Engine = SearchEngineBased
InetSearch.Site = SearchSiteBased
------------------------------------------------------------------------------------------------
end
----------------------------------------------------------------------------------------------------
InetSearch.lua