Автор Тема: TidySource - аккуратный код в SciTE  (Прочитано 32338 раз)

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

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560
  • Репутация: 150
    • Награды
TidySource - аккуратный код в SciTE
« Создано: Август 25, 2011, 13:18:32 »
AutoIt: 3.
Версия: 3.3.6.1-3.3.7.14

Категория: Инструменты и помощь по AutoIt

Описание:
На этот раз решил заменить утилиту Tidy.exe в SciTE.
Основные отличия:

  • не создается резервная копия в папке скрипта (по умолчанию)
  • нет связи с "AutoIt3Wrapper", который, при параметре "#AutoIt3Wrapper_Run_Tidy=y" при каждом запуске и компиляции запускает Tidy.exe и мусорит резервными копиями в папке скрипта (до сих пор не могу понять, зачем такое было сделано)
  • возможно обрабатывать только выделенный участок кода. Желательно, чтобы был выделен логически завершенный кусок кода (функция, оператор, строка)
  • добавлен интерфейс с настройками

Пример подключения к SciTE (файл "au3.properties")
command.9.*.au3="$(autoit3dir)\autoit3.exe" "$(SciteDefaultHome)\TidySource\TidySource.au3" "$(FilePath)"  /NoGui /BackUp
command.name.9.*.au3=Tidy AutoIt Source
command.save.before.9.*.au3=1
command.shortcut.9.*.au3=Ctrl+T

Горячие клавиши:
     Ctrl+T - запуск (при полной замене Tidy.exe)

Параметры командной строки
(нажмите для показа/скрытия)

История версий:
(нажмите для показа/скрытия)

Автор: asdf8


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Сентябрь 10, 2015, 02:13:40 от asdf8 »

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

TidySource - аккуратный код в SciTE
« Отправлен: Август 25, 2011, 13:18:32 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7808
  • Репутация: 2281
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: TidySource - аккуратный код в SciTE
« Ответ #1, Отправлен: Август 25, 2011, 15:29:50 »
asdf8  [?]
Цитировать
нет связи с "AutoIt3Wrapper", который, при параметре "#AutoIt3Wrapper_Run_Tidy=y" при каждом запуске и компиляции запускает Tidy.exe и мусорит резервными копиями в папке скрипта
Это можно отключить. И почему нет связи, можно было бы скомпилировать как Tidy.exe и подставить под оригинальный, тогда и многими используемая директива не перестала бы работать.

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

Цитировать
некоторые отличия в форматировании
Можно подробнее об этом?


Добавлено: Август 25, 2011, 15:36:06
Проверил утилиту, вроде работает неплохо :ok:.
Есть одно пожелание - чтобы в пустых строках не удалялись символы табуляций.
« Последнее редактирование: Август 25, 2011, 15:36:06 от CreatoR, Причина: Объединение сообщений »


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


AutoIt is simple, subtle, elegant.


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


Мои работы

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #2, Отправлен: Август 25, 2011, 16:37:15 »
AZJIO
Цитировать
Цитировать
#AutoIt3Wrapper_Run_Tidy=y
а зачем эта строка вообще нужна? В скомпилированном скрипте она не имеет смысла, а вызвать Tidy можно отдельно, хотя я очень редко пользуюсь, только чтоб разобраться в чужом скрипте.

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

CreatoR
Цитировать
Есть одно пожелание - чтобы в пустых строках не удалялись символы табуляций.

надо закомментировать строки 278-281
Код: AutoIt [Выделить]
If Not $aTmp[$i] Then
    $sOut &= @CRLF
    ContinueLoop
EndIf
 


Цитировать
Цитировать
некоторые отличия в форматировании

Можно подробнее об этом?

1. всегда удаляются двойные пустые строки
2. всегда, перед началом функции и после ее конца, вставляется пустая строка
3. в строке, между кодом и строковым комментарием, вставляется пробел

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7808
  • Репутация: 2281
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: TidySource - аккуратный код в SciTE
« Ответ #3, Отправлен: Август 25, 2011, 20:17:50 »
asdf8
А как насчёт пробела у разных операторов, например знак присваивания?

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

Re: TidySource - аккуратный код в SciTE
« Ответ #3 Отправлен: Август 25, 2011, 20:17:50 »

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #4, Отправлен: Август 25, 2011, 20:32:57 »
Цитировать
А как насчёт пробела у разных операторов, например знак присваивания?

Можно сделать полную обработку кода, хотелось бы услышать все хотелки, желательно с примерами кода.

ps: почему-то у меня в опере, на основной странице форума, при выделении текста, всплывает сообщение "Цитировать", а на странице ответа - нет.  :wacko:

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7808
  • Репутация: 2281
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: TidySource - аккуратный код в SciTE
« Ответ #5, Отправлен: Август 25, 2011, 20:45:12 »
asdf8  [?]
Цитировать
хотелось бы услышать все хотелки
Было бы неплохо ещё прикрутить диалог конфигураций.

Цитировать
почему-то у меня в опере, на основной странице форума, при выделении текста, всплывает сообщение "Цитировать", а на странице ответа - нет
Где это основная страница, «Цитата» всплывает только там, где есть сообщения (с профилем сбоку), а в «Ответ» их как бы нет.

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #6, Отправлен: Август 26, 2011, 00:30:25 »
Цитировать
Было бы неплохо ещё прикрутить диалог конфигураций.

это можно

Цитировать
Где это основная страница

например, эта страница и у меня ни в опере, ни в эксплорере, на ней нет поля ввода и клик по "Цитата" ничего никуда не вставляет.

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7808
  • Репутация: 2281
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: TidySource - аккуратный код в SciTE
« Ответ #7, Отправлен: Август 26, 2011, 00:47:30 »
asdf8  [?]
Цитировать
на ней нет поля ввода и клик по "Цитата" ничего никуда не вставляет
Ну это понятно, нужно в настройках профиля сделать чтобы форма быстрого ответа сразу раскрывалась.

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

Re: TidySource - аккуратный код в SciTE
« Ответ #7 Отправлен: Август 26, 2011, 00:47:30 »

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #8, Отправлен: Август 29, 2011, 15:48:11 »
Обновил версию.
Подробности в первом посте.

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7808
  • Репутация: 2281
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: TidySource - аккуратный код в SciTE
« Ответ #9, Отправлен: Август 29, 2011, 16:43:15 »
Спасибо за обновление.

Я так понял он теперь добавляет свою дериткиву #AutoIt3TidySourse_Parameters?
И ещё, диалог настроек надо бы открывать если программа запущена без параметров, а при вызове Tidy из SciTE пусть обрабатывает скрипт.
И да, почему в настройках нет опций для резервной копий, т.е чтобы оно было отключено по умолчанию, но как опция оно должно присутствовать.


Добавлено: Август 29, 2011, 16:47:10
Неправильно выравнивает табы в пустой строке:

Код: AutoIt [Выделить]
  1.            
  2.         Case $GUI_EVENT_CLOSE
  3.             Exit
  4.     EndSwitch


Там лишний таб.

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #10, Отправлен: Август 29, 2011, 17:14:45 »
CreatoR  [?]
Цитировать
Я так понял он теперь добавляет свою дериткиву #AutoIt3TidySourse_Parameters

только если используется соответствующий режим и текущий параметр #AutoIt3TidySourse_Parameters отличается от предыдущего или от параметра по умолчанию.


Цитировать
И ещё, диалог настроек надо бы открывать если программа запущена без параметров, а при вызове Tidy из SciTE пусть обрабатывает скрипт.
И да, почему в настройках нет опций для резервной копий, т.е чтобы оно было отключено по умолчанию, но как опция оно должно присутствовать.

Неправильно выравнивает табы в пустой строке:

поправлю

Интересуют ошибки обработки - я у себя все, что можно проверил

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #11, Отправлен: Август 30, 2011, 02:56:55 »
Что-то мне подумалось - может убрать режимы замены регистра функций и переменных "ПРОПИСНЫЕ", "строчные", "Первая буква заглавная" - не вижу особого смысла в них, а вместо этого создать словарь из слов начинающихся с заглавной буквы (из файлов au3.api, au3.user.calltips.api), плюс, отдельно, пользовательский словарь. Правда, может заметно увеличиться время обработки (хотя - не факт), зато все коды будут по одному шаблону.
Есть какие мысли по этому поводу?

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #12, Отправлен: Август 31, 2011, 13:05:20 »
Обновил версию до 1.2.

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2712
  • Репутация: 1137
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
Re: TidySource - аккуратный код в SciTE
« Ответ #13, Отправлен: Август 31, 2011, 13:51:40 »
asdf8
Нормально работает, хорошо что нет привязки к SciTE, то есть можно и в Notepad++ через ком-строку обработать.
Можно ещё добавить проверку целостности, сравнив оригинал с выходным результатом методом удаления пробельных символов и если файлы будут различаться, то выдать предупреждение (регистр букв не учитывая).

Справку можно так сделать
(нажмите для показа/скрытия)

Оффлайн asdf8 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 560

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #14, Отправлен: Сентябрь 01, 2011, 00:49:26 »
AZJIO  [?]
Цитировать
Справку можно так сделать

Я в курсе, только свое окно нужно самому и обрабатывать, а тут - все работает в отдельном процессе.


Цитировать
Можно ещё добавить проверку целостности

Регистр букв заменяется в целом слове, а не ищется по всему тексту и вероятность получить ошибку от обработки пробелов и переносов строк, получается не меньше. Такой проверкой, с удаленными пробелами, все ошибки не выловишь, не хотелось бы добавлять дополнительные обработки (из соображений быстродействия). К тому-же, всегда можно воспользоваться "Au3Check", после обработки, и, в случае проблем, нажать "Undo" (в SciTE).

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

Re: TidySource - аккуратный код в SciTE
« Ответ #14 Отправлен: Сентябрь 01, 2011, 00:49:26 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
10 Ответов
7246 Просмотров
Последний ответ Апрель 23, 2015, 00:05:38
от CreatoR
5 Ответов
4478 Просмотров
Последний ответ Ноябрь 06, 2012, 12:21:14
от CreatoR
1 Ответов
2017 Просмотров
Последний ответ Июнь 06, 2013, 07:54:48
от Mur
7 Ответов
2819 Просмотров
Последний ответ Ноябрь 16, 2013, 23:13:25
от InnI
7 Ответов
2969 Просмотров
Последний ответ Март 17, 2014, 18:49:21
от asdf8
0 Ответов
3933 Просмотров
Последний ответ Август 11, 2014, 17:22:30
от asdf8
4 Ответов
1238 Просмотров
Последний ответ Январь 06, 2015, 00:05:28
от ivanius
7 Ответов
1554 Просмотров
Последний ответ Февраль 03, 2015, 23:00:29
от Yashied
7 Ответов
2913 Просмотров
Последний ответ Май 29, 2015, 10:54:36
от Garrett
6 Ответов
1786 Просмотров
Последний ответ Август 26, 2015, 18:15:47
от Yashied