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

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

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2712
  • Репутация: 1137
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
Re: TidySource - аккуратный код в SciTE
« Ответ #15, Отправлен: Сентябрь 01, 2011, 02:20:54 »
asdf8
Цитировать
Регистр букв заменяется в целом слове, а не ищется по всему тексту и вероятность получить ошибку от обработки пробелов и переносов строк, получается не меньше. Такой проверкой, с удаленными пробелами, все ошибки не выловишь, не хотелось бы добавлять дополнительные обработки (из соображений быстродействия). К тому-же, всегда можно воспользоваться "Au3Check", после обработки, и, в случае проблем, нажать "Undo" (в SciTE).
Быстродействие мгновенно (бесплатно для скрипта), вот:
Код: AutoIt [Выделить]
$orig='так-кто'
$out='кто-так'
$tmp1=StringStripWS($orig, 8)
; обработка
$tmp2=StringStripWS($out, 8)
If StringCompare($tmp1, $tmp2) Then MsgBox(0, 'Message', 'Возможны ошибки')


Я не знаю как регулярные выражения работают в TidySource, но я в утилите "Converter CMD to BBcode" использовал такую проверку, и это было на пользу, избавило от тщательной проверки кода. Чуть что сразу предупреждение, сохраняю ошибочный результат в файл, сравниваю утилитой сравнения, исправляю регулярное выражение вызвавшее ошибку. И просто уверенность появляется 100%-ная

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

Re: TidySource - аккуратный код в SciTE
« Ответ #15 Отправлен: Сентябрь 01, 2011, 02:20:54 »

Оффлайн asdf8 [?]

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

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

Если на выходе должен быть код :
Код: AutoIt [Выделить]
If @Compiled Then $var = 1


а получился :
Код: AutoIt [Выделить]
If@Compiled Then $var = 1


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

Хотя, если такая проверка не прошла - то это не "возможная", а точно ошибка.

Проверку добавил, версию обновил.

Оффлайн AZJIO [?]

  • VIP
  • *
  • Сообщений: 2712
  • Репутация: 1137
    • мой сайт
    • Награды
  • Версия AutoIt: 3.3.8.1
Re: TidySource - аккуратный код в SciTE
« Ответ #17, Отправлен: Февраль 19, 2012, 02:13:03 »
asdf8
Цитировать
при каждом запуске и компиляции запускает Tidy.exe и мусорит резервными копиями в папке скрипта (до сих пор не могу понять, зачем такое было сделано)
В Tidy можно просто указать каталог, например  /bdir=C:\AutoIt3\BackUp и количество резервных копий /kv=n


Оффлайн asdf8 [?]

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

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #18, Отправлен: Февраль 19, 2012, 02:27:43 »
Резервные копии - это только один из доводов.
Для меня, например, гораздо важнее возможность обработать часть кода и при этом не потерять закладки, пометки и фолдинг.

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

Re: TidySource - аккуратный код в SciTE
« Ответ #18 Отправлен: Февраль 19, 2012, 02:27:43 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7809
  • Репутация: 2281
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: TidySource - аккуратный код в SciTE
« Ответ #19, Отправлен: Июль 11, 2012, 16:25:04 »
С недавних пор перестал работать, а всё из за строчки:
Код: AutoIt [Выделить]
If ProcessExists('AutoIt3Wrapper.exe') Then Exit

зачем она?


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


AutoIt is simple, subtle, elegant.


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


Мои работы

Оффлайн asdf8 [?]

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

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #20, Отправлен: Июль 11, 2012, 16:50:49 »
CreatoR  [?]
Цитировать
зачем она?

Сейчас посмотрел - у меня эта строка оказалась закоментированной.
Просто забыл обновить.  :)

PS: правда, я пользуюсь не скомпилированным скриптом, а A3X-файлом.
Это заглушка, чтобы программа не запускалась во время компиляции скрипта.
(украшать код во время компиляции - смысла нет, видимо, только, для резервного копирования)
« Последнее редактирование: Июль 11, 2012, 16:56:30 от asdf8 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7809
  • Репутация: 2281
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Re: TidySource - аккуратный код в SciTE
« Ответ #21, Отправлен: Июль 11, 2012, 17:05:10 »
asdf8  [?]
Цитировать
Это заглушка, чтобы программа не запускалась во время компиляции скрипта.
Ну у меня например скрипт запускается через AutoItWrapper (по г.клавише), и Tidy после этого не работает.
Закомментировал эту строчку у себя.

Возможно нужно проверять параметры запущенного Wrapper'а, если там есть /in, тогда не продолжать выполнение Tidy.

Оффлайн Skif_off [?]

  • Новичок
  • *
  • Сообщений: 173
  • Репутация: 12
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: TidySource - аккуратный код в SciTE
« Ответ #22, Отправлен: Август 11, 2014, 12:21:47 »
Просто забыл обновить.  :)
Вы можете выложить окончательный вариант? Здесь или на оффоруме.

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

Re: TidySource - аккуратный код в SciTE
« Ответ #22 Отправлен: Август 11, 2014, 12:21:47 »

Оффлайн asdf8 [?]

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

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #23, Отправлен: Август 11, 2014, 17:24:06 »
Skif_off  [?]
Цитировать
Вы можете выложить окончательный вариант?

Версия, которой я сейчас пользуюсь : ссылка

Оффлайн Skif_off [?]

  • Новичок
  • *
  • Сообщений: 173
  • Репутация: 12
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: TidySource - аккуратный код в SciTE
« Ответ #24, Отправлен: Август 12, 2014, 00:54:22 »
asdf8
Спасибо, забрал. Такой вопрос еще: в каких пределах допустимо модифицировать, если допустимо? :)
Компилил с
(нажмите для показа/скрытия)

AkelPad UDF бы еще...

Оффлайн asdf8 [?]

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

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #25, Отправлен: Август 12, 2014, 01:33:08 »
Skif_off  [?]
Цитировать
в каких пределах допустимо модифицировать, если допустимо?

Раз исходник в свободном доступе, то модифицировать конечно можно, достаточно упоминания в копирайте.
ps: в РЕ файл зашить версию содержащую буквы не получится, как вариант, номер модификации можно указывать четвертым числом версии.

Оффлайн Skif_off [?]

  • Новичок
  • *
  • Сообщений: 173
  • Репутация: 12
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: TidySource - аккуратный код в SciTE
« Ответ #26, Отправлен: Август 12, 2014, 04:30:01 »
Зашивал так, но это всё на скорую руку, набросок по сути, подсмотрю потом (модифицированный исходник нечаянно потерял, надо расковыривать exe'шник :() директивы у AZJIO.


Добавлено: Август 13, 2014, 00:15:13
asdf8
Помимо тесной интеграции с SciTE что-нибудь изменилось? Проактивка ловит попытку послать сообщение родительскому процессу, пока не могу найти откуда.
Не решу, как быть - вернуться на 1.2.2 или пилить :) _GetApiInfo() пришлось скопировать из 1.2.2
« Последнее редактирование: Август 13, 2014, 00:15:13 от Skif_off, Причина: Объединение сообщений »

Оффлайн Skif_off [?]

  • Новичок
  • *
  • Сообщений: 173
  • Репутация: 12
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: TidySource - аккуратный код в SciTE
« Ответ #27, Отправлен: Ноябрь 04, 2014, 08:56:46 »
asdf8
Если скрипт в UTF-8, то TidySource превращает кириллицу в такое
Код: AutoIt [Выделить]
    $110 = 'Ů⡢鳼 ᢫﫧

В чём может быть дело?
Попробовал сохранить и скрипт, и TidySource в UTF-8 - та же фигня.

До кучи не заметил сразу:
Код: AutoIt [Выделить]
Global $0 = @OSVersion
;в первой строке превращается в
bal $0 = @OSVersion

Это уже из-за BOM, похоже.

З.Ы. Гоняю PreExpand, утилита на выходе выдаёт UTF-8 without (!) BOM. Я бы понял, если бы все пользовались исключительно CP1252, но с учётом CP1250, CP1251, CP1253-CP1258 выбор несколько спорный...
« Последнее редактирование: Ноябрь 04, 2014, 09:12:02 от Skif_off »

Оффлайн asdf8 [?]

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

  • Автор темы
  • Репутация: 150
    • Награды
Re: TidySource - аккуратный код в SciTE
« Ответ #28, Отправлен: Ноябрь 04, 2014, 12:49:26 »
Skif_off  [?]
Цитировать
Если скрипт в UTF-8, то TidySource превращает кириллицу в такое

Видимо дело в алгоритме обмена текстом между SciTE и TidySource.

TidySource получает текст исходника так:
для файла :
Код: AutoIt [Выделить]
$str = FileRead($sFile)


из SciTE :
Код: AutoIt [Выделить]
$s_Text = ControlGetText($hSciTE, '', $hCtrl1)
$s_Text = BinaryToString(StringToBinary($s_Text, 2), 1)
 


В общем, чтобы, кроме ANSI, поддерживалось еще что-то, нужно добавлять анализатор кодировок текста.




Оффлайн Skif_off [?]

  • Новичок
  • *
  • Сообщений: 173
  • Репутация: 12
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: TidySource - аккуратный код в SciTE
« Ответ #29, Отправлен: Ноябрь 05, 2014, 12:58:33 »
Видимо дело в алгоритме обмена текстом между SciTE и TidySource.
У меня скрипт подпилен на предмет работы без SciTE :), добавлю проверку кодировки.
UTF-8 без BOM ещё обязательно вылезет боком, не понимаю автора PreExpand - географии не было в школе? Ведь все программы когда-нибудь лажают с определением кодировки, некоторым даже charset="ххх" не аргумент.

А почему так
Код: AutoIt [Выделить]
$s_Text = BinaryToString(StringToBinary($s_Text, 2), 1)

, вдруг текст не в ANSI?

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

Re: TidySource - аккуратный код в SciTE
« Ответ #29 Отправлен: Ноябрь 05, 2014, 12:58:33 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
10 Ответов
7356 Просмотров
Последний ответ Апрель 23, 2015, 00:05:38
от CreatoR
5 Ответов
4562 Просмотров
Последний ответ Ноябрь 06, 2012, 12:21:14
от CreatoR
1 Ответов
2039 Просмотров
Последний ответ Июнь 06, 2013, 07:54:48
от Mur
7 Ответов
2851 Просмотров
Последний ответ Ноябрь 16, 2013, 23:13:25
от InnI
7 Ответов
3056 Просмотров
Последний ответ Март 17, 2014, 18:49:21
от asdf8
0 Ответов
3948 Просмотров
Последний ответ Август 11, 2014, 17:22:30
от asdf8
4 Ответов
1261 Просмотров
Последний ответ Январь 06, 2015, 00:05:28
от ivanius
7 Ответов
1589 Просмотров
Последний ответ Февраль 03, 2015, 23:00:29
от Yashied
7 Ответов
2981 Просмотров
Последний ответ Май 29, 2015, 10:54:36
от Garrett
6 Ответов
1835 Просмотров
Последний ответ Август 26, 2015, 18:15:47
от Yashied