1

Тема: SciTE: интеллектуальная замена TAB'ов на пробелы в выделенном тексте

Скрипт для SciTE, на языке lua.
Заменяет TAB'ы на пробелы в выделенном тесксте, с учетом размера табуляции, так, чтобы текст не "разъезжался" после такой замены.

local sel_text = editor:GetSelText()
if sel_text == "" then print("Выделите текст для обработки!") end
local sel_start = editor.SelectionStart
local sel_end = editor.SelectionEnd

local text_out = ""
for i = sel_start, sel_end-1 do
    local char = editor:textrange(i, i+1)
    if char == "\t" then
        local space_count = editor.Column[i+1] - editor.Column[i]
        text_out = text_out..string.rep(" ", space_count)
    else
        text_out = text_out..char
    end
end

editor:ReplaceSel(text_out)

Пример подключения в файле .properties:

command.name.135.*=Заменить TAB-ы на пробелы
command.135.*=dofile $(SciteDefaultHome)\tools\TabToSpace.lua
command.mode.135.*=subsystem:lua,savebefore:no

Автор скрипта - mozers.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.