Автор Тема: Внешние дополнения к редактору SciTE  (Прочитано 36895 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн rollex [?]

  • Новичок
  • *
  • Сообщений: 66
  • Репутация: 1
    • Награды
Re: Внешние дополнения к редактору SciTE
« Ответ #30, Отправлен: Январь 26, 2012, 12:44:12 »
Medic84
Инструкция рассчитана на SciTE который идёт в составе с AutoIt (SciTE4AutoIt).
Так где же правда?

Русское сообщество AutoIt

Re: Внешние дополнения к редактору SciTE
« Ответ #30 Отправлен: Январь 26, 2012, 12:44:12 »

Оффлайн Medic84 [?]

  • Администратор
  • *
  • Сообщений: 1416
  • Репутация: 303
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Внешние дополнения к редактору SciTE
« Ответ #31, Отправлен: Январь 26, 2012, 13:41:44 »
Creator наверное опечатался, потому что Scite4AutoIT можно скачать тут

   
На форуме принято отмечать полезные сообщения пальцем вверх =)
Никогда не даю подробных примеров сразу, я сначала навожу на мысль - как можно написать. Учитесь мыслить сами, а не за других людей.

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 8013

  • Автор темы
  • Репутация: 2304
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: Внешние дополнения к редактору SciTE
« Ответ #32, Отправлен: Январь 26, 2012, 15:44:43 »
rollex  [?]
Цитировать
SciTe дополнительно не скачивал
Я имел в виду SciTE который предоставляется на сайте AutoIt (SciTE4AutoIt3).


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Alofa

  • Гость
Re: Внешние дополнения к редактору SciTE
« Ответ #33, Отправлен: Август 22, 2015, 23:50:05 »
Интегрировал аббревиатуры некоторых ключевых слов (+сокращения основных веток реестра) с подсказками автозавершения.
И теперь, когда я в SciTE начинаю набирать, к примеру, "if" (лучше строчными буквами), то наблюдаю следующее меню:
Нажмите для отображения изображения в оригинальном размере.

И если далее выбрать, опять же к примеру, пункт "if_elseif_else_endif" и нажать клавишу пробела, то аббревиатура разворачивается в следующие строки:
Нажмите для отображения изображения в оригинальном размере.

(нажмите для показа/скрытия)
« Последнее редактирование: Июль 06, 2017, 17:36:10 от Alofa »

Русское сообщество AutoIt

Re: Внешние дополнения к редактору SciTE
« Ответ #33 Отправлен: Август 22, 2015, 23:50:05 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 8013

  • Автор темы
  • Репутация: 2304
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: Внешние дополнения к редактору SciTE
« Ответ #34, Отправлен: Март 14, 2019, 20:44:49 »
Скрипт для создания аббревиатуры с выделенного текста:

Код: (lua) [Выделить]
  1. --------------------------------------------------------------------------------
  2. -- MakeAbbrev()
  3. --
  4. -- Make abbreviation from selected code (by G.Sandler).
  5. --
  6. -- Tool: AutoItTools.MakeAbbrev $(au3) 2 Alt+A Make Abbreviation
  7. --------------------------------------------------------------------------------
  8. function AutoItTools:MakeAbbrev()
  9.     local sel_text = editor:GetSelText()
  10.    
  11.     if #sel_text < 1 then
  12.         print("!!! To make abbreviation, select some code !!!")
  13.         return
  14.     end
  15.    
  16.     if #sel_text < 10 then  --Limit abbrev value by 10 chars minimum
  17.         print("!!! To make abbreviation, please select code with minimum of 10 chars !!!")
  18.         return
  19.     end
  20.    
  21.     local abbrev_name = sel_text:match("%w+")
  22.     abbrev_name = shell.inputbox("Make Abbreviation", "Enter abbreviation name for selected code:", abbrev_name:lower(), function(name) return not name:match('[# \t=]') end)
  23.     if abbrev_name == nil then return end
  24.    
  25.     abbrev_name = abbrev_name:lower()
  26.    
  27.     local user_abbrev_file = props["SciteDefaultHome"] .. "\\abbrev\\au3.user.abbrev"
  28.     local user_abbrev_kwrds_file = props["SciteDefaultHome"] .. "\\properties\\au3.user.keywords.abbreviations.properties"
  29.    
  30.     local user_abbrev_read = ''
  31.    
  32.     local h_user_abbrev_file = io.open(user_abbrev_file)
  33.    
  34.     if h_user_abbrev_file then
  35.         user_abbrev_read = h_user_abbrev_file:read('*a') .. "\n"
  36.         h_user_abbrev_file:close()
  37.     end
  38.    
  39.     local h_user_abbrev_kwrds_file = io.open(user_abbrev_kwrds_file)
  40.    
  41.     if h_user_abbrev_kwrds_file then
  42.         local user_abbrev_kwrds_read = h_user_abbrev_kwrds_file:read('*a') .. " "
  43.         h_user_abbrev_kwrds_file:close()
  44.        
  45.         io.output(user_abbrev_kwrds_file)
  46.         io.write(user_abbrev_kwrds_read .. abbrev_name)
  47.         io.close()
  48.     else
  49.         print("!!! File not found: " .. user_abbrev_kwrds_file .. "!!!")
  50.     end
  51.    
  52.     local eol = "\r\n"
  53.    
  54.     if editor.EOLMode == SC_EOL_CR then
  55.         eol = "\r"
  56.     elseif editor.EOLMode == SC_EOL_LF then
  57.         eol = "\n"
  58.     end
  59.    
  60.     sel_text = sel_text:gsub("\\", "\\\\"):gsub(eol, "\\n"):gsub("\t", "\\t")
  61.    
  62.     io.output(user_abbrev_file)
  63.     io.write(user_abbrev_read .. abbrev_name .. "=" .. sel_text)
  64.     io.close()
  65.    
  66.     scite.Perform("reloadproperties:")
  67.    
  68.     print("+ Abbreviation seccessfuly created, to call it type in SciTE: " .. abbrev_name .. " and press Space or Ctrl+B")
  69. end

Добавить в menu:

  command.parent.33.$(au3)=1
command.name.33.$(au3)=Make Abbreviation
command.33.$(au3)=Invoke AutoItTools.MakeAbbrev
command.mode.33.$(au3)=subsystem:lua,savebefore:no
command.shortcut.33.$(au3)=Alt+A

33 это последовательный номер в меню, нужно заменить на свободный.

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 8013

  • Автор темы
  • Репутация: 2304
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: Внешние дополнения к редактору SciTE
« Ответ #35, Отправлен: Март 27, 2019, 22:33:23 »
Скрипт для генерирования не объявленных переменных в функции:
(пока что проверяет только в текущем скрипте)

AddUndeclaredVars.lua
Код: (lua) [Выделить]
  1. --[[
  2.     AddFuncUndeclaredVars()
  3.     Add function uneclared variables.
  4.     Author: G.Sandler (CreatoR)
  5. --]]
  6.  
  7. -- Get the current line.
  8. local iCurr_Pos = editor.CurrentPos
  9. local iLine = editor:LineFromPosition(iCurr_Pos)
  10. local sLine = editor:GetLine(iLine)
  11.  
  12. if sLine == nil then
  13.     print("- Cursor not on function definition.")
  14.     return
  15. end
  16.  
  17. -- Get function name in original case registry
  18. local sFunc_Name = sLine:match("^%s*[Ff][Uu][Nn][Cc] %s*([%w_]*)")
  19.  
  20. -- First we check if it's a function (in lower case).
  21. if not sFunc_Name then
  22.     print("- Cursor not on function definition.")
  23.     return
  24. end
  25.  
  26. -- Set up variables we'll be using throughout.
  27. local sUnDclrd_Vars = ""
  28. local sFunc_Body = sLine
  29. local iFunc_Line = iLine
  30. local aParams = sLine:gmatch("(%$[%w_]*)")
  31. local aScope = {"local", "global", "dim", "const", "static"}
  32. local aVars = {}
  33.  
  34. -- Get function body and vars
  35. while iLine < editor.LineCount - 1 do
  36.     iLine = iLine + 1
  37.     sLine = editor:GetLine(iLine)
  38.    
  39.     if sLine:lower():match("^%s*endfunc") then
  40.         sFunc_Body = sFunc_Body .. sLine
  41.         break
  42.     end
  43.    
  44.     -- Ignore commented lines
  45.     if sLine:match("^%s*;") == nil then
  46.         sFunc_Body = sFunc_Body .. sLine
  47.        
  48.         for var, str in sLine:gmatch("(%$[%w_]+)%s*=%s*") do
  49.             aVars[var] = var
  50.         end
  51.     end
  52. end
  53.  
  54. -- Get current doc content and remove all functions and all commented lines from it
  55. local sDoc_Read = editor:GetText():lower():gsub("[\r\n^]%s*func %s*([%w_]*.-endfunc)", "")
  56. sDoc_Read = sDoc_Read:gsub("[\r\n^]%s*;[^\r\n]*", "")
  57. sDoc_Read = sDoc_Read:gsub("[\r\n^]%s*#cs%s*.-#ce", "")
  58. sDoc_Read = sDoc_Read:gsub("[\r\n^]%s*#comments%-start%s*.-#comments%-end", "")
  59.  
  60. for sKey, sVar in pairs(aVars) do
  61.     iFound = 0
  62.    
  63.     -- Check if the vars not declared in function params
  64.     for sParam, str in aParams do
  65.         if sVar:lower() == sParam:lower() then
  66.             iFound = 1
  67.             break
  68.         end
  69.     end
  70.    
  71.     -- Check if the vars not declared in function itself
  72.     if iFound == 0 then
  73.         -- for i = 1, #aScope do
  74.         for _, sScope in ipairs(aScope) do
  75.             if sFunc_Body:lower():match("[\r\n^]%s*" .. sScope:lower() .. " .*" .. sVar:lower() .. "%s*[=,\r\n]") then
  76.                 iFound = 1
  77.                 break
  78.             end
  79.         end
  80.     end
  81.    
  82.     -- Check if the vars not declared globaly in entire file (only current script ATM)
  83.     if iFound == 0 and sDoc_Read:match("[\r\n^]%s*global .*" .. sVar:lower() .. "%s*[=,\r\n]") then
  84.         iFound = 1
  85.     end
  86.    
  87.     if iFound == 0 then
  88.         if sUnDclrd_Vars ~= "" then
  89.             sUnDclrd_Vars = sUnDclrd_Vars .. ", "
  90.         end
  91.        
  92.         sUnDclrd_Vars = sUnDclrd_Vars .. sVar
  93.     end
  94. end
  95.  
  96. if sUnDclrd_Vars == "" then
  97.     print("> Undeclared variables not found in \"" .. sFunc_Name .. "\" function")
  98. else
  99.     editor:LineEnd()
  100.     editor:NewLine()
  101.     editor:ReplaceSel("Local " .. sUnDclrd_Vars)
  102.     editor:NewLine()
  103.     editor:GotoPos(iCurr_Pos)
  104. end

Добавить в меню:
Код: (properties) [Выделить]
  1.     command.parent.33.$(au3)=1
  2.     command.name.33.$(au3)=Add function undeclared vars
  3.     command.33.$(au3)=dofile(props["SciteDefaultHome"].."\\lua\\AddUndeclaredVars.lua")
  4.     command.mode.33.$(au3)=subsystem:lua,savebefore:no
  5.     command.shortcut.33.$(au3)=Ctrl+2

33 это последовательный номер в меню, нужно заменить на свободный.
« Последнее редактирование: Апрель 02, 2019, 01:11:02 от CreatoR »

Русское сообщество AutoIt

Re: Внешние дополнения к редактору SciTE
« Ответ #35 Отправлен: Март 27, 2019, 22:33:23 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
13 Ответов
9630 Просмотров
Последний ответ Декабрь 01, 2009, 10:43:53
от Loopback
4 Ответов
2455 Просмотров
Последний ответ Октябрь 06, 2010, 04:33:28
от Kaster
6 Ответов
3867 Просмотров
Последний ответ Октябрь 18, 2010, 09:27:41
от Belfigor
6 Ответов
4939 Просмотров
Последний ответ Ноябрь 04, 2010, 00:56:25
от Yashied
42 Ответов
36674 Просмотров
Последний ответ Март 23, 2019, 04:04:27
от CreatoR
36 Ответов
45580 Просмотров
Последний ответ Апрель 02, 2018, 18:18:01
от samuron
0 Ответов
1867 Просмотров
Последний ответ Январь 24, 2012, 01:07:13
от CreatoR
10 Ответов
8508 Просмотров
Последний ответ Апрель 23, 2015, 00:05:38
от CreatoR
11 Ответов
5870 Просмотров
Последний ответ Апрель 30, 2013, 14:25:10
от mef-t
7 Ответов
3993 Просмотров
Последний ответ Март 17, 2014, 18:49:21
от asdf8