| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Обсуждение форума > Автоматизация вставки/удаления 4-х пробелов |
| Автор: Cr@$h 6.10.2006, 18:07 |
| Нужны мнения. Вопрос привязки к подсветке не рассматриваем, т.к. если и вводить это, то в тех подсветках, на форумах которых введена автоматизация через горячие клавиши. Т.е. тут вопрос риторический будет уже. |
| Автор: mr.DUDA 6.10.2006, 18:31 |
| А зачем ? Надо было бы чем-то Tab клавишу заменить при indentation (тут четыре пробела было бы неплохо), но в начале каждой строки ?... |
| Автор: proDiva 26.10.2006, 13:56 |
| Наверно все-таки на форуме по питону автоматизация нужна..... для абсолютного удобства |
| Автор: Любитель 4.11.2006, 15:12 | ||
По-моему речь про Ctr+[ и Ctrl+] для ууменьшения/увеличения отступа, а не про каждую строку. Или что-то вроде того. Конечно, за. Не понятен вариант "только для питона". Тогда уж для справедливости надо добавить "только в C/C++" |
| Автор: R.M. 5.11.2006, 19:12 |
Нет |
| Автор: pythonwin 6.11.2006, 13:08 |
| я 4 (2) пробела использую в python, c++, JS, CSS, html |
| Автор: 12345c 6.11.2006, 21:19 |
| Я сделал этот скрипт для IE (самое сложное) с тщательным учётом всех случаев, для скриптов, совместимых с винградовскими, получилось много, но работает (примерно 2 КБа) . Выложил скрипт в теме http://forum.vingrad.ru/topic-115734.html уже месяц назад, задал вопрос по тестированию и продолжению, но Sardar пропал, и никто больше не заинтересовался. Какова позиция сейчас по внесению моих скриптов в Винград? Если Sardar сам сделает, то делать под все браузеры мне не имеет смысла. Если народ скажет, что нормально для IE, то доделаю на остальные с соблюдением совместимости скриптов. У Zeroglif получилось несколько компактнее, но он не писал совместимые скрипты, и не известно, насколько полно поддерживается IE (там особенность с выделением участка в конце текста, если он оканчивается 1 или более переносов строки). Будет кто-то тестировать? Будет Sardar делать свой вариант? Вставят мой результат за разумный период времени (не более 10 дней)? Последний вопрос задаю, потому что знаю, что огромная проблема поменять в рабочем форуме даже простой текст (была тема про "Вопрос не решён"). |
| Автор: pythonwin 7.11.2006, 06:57 | ||
спасибо, постетирую, но например я не сижу на ie - ff или mozilla. а так как многие питонщики сидят не в винде, то ие используют не все. ответ по тестированию http://forum.vingrad.ru/index.php?showtopic=115734&view=findpost&p=913793 |
| Автор: Girder 7.11.2006, 09:47 |
| Многовато... Уже говорили... есть готовые наработки... схемы... и т.п. и писать надо под них, а не отвлеченно. |
| Автор: 12345c 7.11.2006, 11:48 | ||
Поэтому, может быть, только форумом Питона ограничиться? Там правильное определение длины выделенного участка занимает 850 байт для IE, из-за ошибочности учёта переносов строк. Sardar писал, что тоже брался пару раз, но до конца не довёл. Я написал на базе скриптов, скачанных с Винграда, останется добавить кнопку. Но в скриптах Винграда нет правильного учёта переносов строк для IE. Доказать это очень просто. 1) Введи в IE в поле ввода несколько переносов строки, например, 5. После них ничего не пиши, даже пробелв; 2) выдели эти переносы; 3) нажми Ctrl+B или "Жирный". Что видим? Вместо сохранившихся переносов - 2 метатега подряд: [ B ][ /B ]. Для вставки 4 пробелов данный баг IE критичен - создаёт ряд неправильностей при вставке пробелов. Ради его исправления пришлось написать эти 850 байт, из них где-то 600 - на обработку бага. Если же эту процедуру включить во все форумы, то можно будет переписать все остальные кнопки Винграда на корректную работу с переносами строкв IE. Все без исключения кнопки и выпадающие списки цвета, размера, кода имеют такую ошибку. Баг проявляется не только в самом конце строки, но и при таком выделении текста, чтобы в конце выделения был 1 или более переносов строки. Например,
|
| Автор: 12345c 14.11.2006, 15:34 |
| Вопрос опять повис. Girder, если ты сейчас рулишь скриптами, то ответь в связи с вышеизложенным: 1) будем ли вставлять доработку для Питона и распространять на другие форумы? С учётом того, что скрипт займёт 2.5 Кба. 2) часть этого скрипта (около 1 К) необходима для исправления бага со всеми остальными кнопками (В, I, ...) в IE, как описано сообщением выше. Будем исправлять? 3) pythonwin проверил работу IE-части скрипта и http://forum.vingrad.ru/index.php?showtopic=115734&view=findpost&p=913793 о добавлении автоотступа при написании скрипта в поле ввода. Это, естественно, будет влиять на всё (ввод обычных предложений) и займёт ещё код. Стоит ли делать? 4) часть кода для FF/Opera я бы сделал уже давно, но не получил ответа от Sardar-a, будет ли он это делать, а переспектива, что решение провисит 2 месяца, а потом придёт Sardar и сделает свой вариант, не радует (1-я часть перспективы). Поэтому вопрос: будем висеть или быстро сделаем все 3 верхних пункта? |
| Автор: Girder 14.11.2006, 15:45 | ||
1. Ни кто ими не рулит
2. Тут лудше к Вове вопрос Но смысла вставлять только для IE - ноль. 3. Всего проголосовавших: 14 |
| Автор: 12345c 14.11.2006, 15:53 |
| Нет, я же говорю, что для всех - сделаю быстро, там нет таких проблем, но делать под Винград когда в него не будет вставлено, смысла немного. Тогда будем ждать ответа Вовы и других заинтересованных. "Всего проголосовавших: 14" - Вопрос на голосовании висит уже месяц, и все, кто мог посмотреть, посмотрел. |
| Автор: pythonwin 15.11.2006, 07:08 | ||
12345c, многие питонщики даже не знают о таком голосовании... |
| Автор: R.M. 15.11.2006, 12:16 |
| pythonwin, так ты создай там топик |
| Автор: pythonwin 15.11.2006, 13:59 |
http://forum.vingrad.ru/topic-121716.html |
| Автор: Artemios 15.11.2006, 14:46 |
Вот мы и приходим По предыдущим топикам у меня возник такой вопрос: Какой процент посетителей Винграда использует ИЕ? pythonwin прав, для многих под *nix вообще такого понятия, как ИЕ, не существует. Может, завести отдельное обсуждение? |
| Автор: pythonwin 15.11.2006, 14:58 |
Artemios, спасибо, за поддержку Какое обсуждение нужно? подробней, пожалуйста, опиши хотя уже столько тем было по поводу всего-то 4-х пробелов... |
| Автор: Artemios 15.11.2006, 15:05 |
| Обсуждение... Понятно, что разработка форума должна быть кроссплатформенной. Однако приоритетный стандарт/направление все равно останется. Может быть, лучше ИЕ для этих целей подойдет FF? Тем более, что сам FF кроссплатформенн... |
| Автор: pythonwin 15.11.2006, 15:18 | ||
Artemios, я за FF, хотя дискреминировать никого не нужно |
| Автор: Luceus 15.11.2006, 16:00 |
| Питон лучше! :-) |
| Автор: Medved 15.11.2006, 17:41 |
| А я два пробела использую. И табуляцию настраиваю на такой размер. 4 имхо много. |
| Автор: pythonwin 16.11.2006, 11:53 | ||
ну тогда пробей системный подход к пробелам - возможность в профиле пользователя настраивать количество проблелов, а может ещё какой-нибудь способ. |
| Автор: Samuil 17.11.2006, 22:55 | ||
Ребят, зачем придумывать? Мой совет: Повторите так как это сделанно в JBuilder или в других средах разработки, там нажимаешь: Ctrl+K И он сам его форматирут вот код он просто отфарматирован автоматом:
Посмотрите и посудите сами, помоему это очень удобно |
| Автор: Void 17.11.2006, 23:03 |
| Samuil, тогда начнутся ещё большие прения, потому что все предпочитают разные стили форматирования. |
| Автор: Exception 19.11.2006, 21:21 |
| Ну так что? |
| Автор: pythonwin 20.11.2006, 11:59 |
1) проголосовало 43 человека и 40 - за 4 пробела, т.е. есть форумчане, которым 4 пробела нужны. 2) нужна поддерка кого-то из админов - нужно говорить уже о как внедрять и что не получается при встраивании скрипта в форум. |
| Автор: Exception 20.11.2006, 18:54 |
| Можно как-нибудь отхукить нажатие конпки <Tab> или нет? |
| Автор: Sardar 20.11.2006, 22:28 |
| Перед всеми дико извиняюсь, я действительно пропадал на почти три недели. Фишка же простая, была готова уже давно (правда мало тестировалась), при чём параллельно писал Zeroglif и 12345c, надо было их варианты ставить или мылом в меня пнуть, я бы быстро очнулся.. чувство скотское теперь висит, извиняюсь Код в SVN'е, полностью интегрированный в нынешние скрипты, получился немного раздутым, но учитывает многие "ньюансы", в коментах описано. Площадка для тестов здесь: http://sardar.vingrad.ru/vingradattaches/Vingrad_indent/Vingrad_indent.htm P.S. пасиб Girder'у, напомнил мылом. |
| Автор: 12345c 21.11.2006, 02:04 |
| Да ничего, спасибо, что вернулся И сразу скажу, что тест эта штука не прошла в IE Процесс "эксплойта" : 1) дописываем несколько переносов строки в самом инзу тестовых строк и ничего после них не ставим - ни пробела, ни символа; 2) выделяем текст или часть его с нижними переносами; 3) жмём Ctrl+] 4) вместо того, чтобы получить N строк, в каждой из которых будет по 4 пробела, получаем строки, в которых был текст, с 4 пробелами в каждой, а все переносы в конце исчезают. Ни пробелов, ни переносов. (Т.е., хотел юзер заготовить себе 5 строк под коды с отступом, сделал 5 переносов, нажал Ctrl+] - и на тебе.) |
| Автор: pythonwin 21.11.2006, 07:43 |
многие пользуются Tab для навигации и таких довольно много |
| Автор: Sardar 21.11.2006, 16:39 |
Да, но только на onkeydown. Читай да Хоткеи теперь привязаны к textarea, вне её таб может работать как обычно. Другое дело что так с ходу прикрутить не получиться... хоткеи вообще бы пересмотреть/переписать... 12345c, а у тебя получилось пофиксить это? Дело в том, что ИЕ сам отрубает последние пустые переводы строк в document.selection.createRange() - т.е. я начинаю работу уже не имея этих переносов. Если в конце будет хоть один символ, то ИЕ так уже не делает и всё работает. |
| Автор: 12345c 21.11.2006, 18:02 |
| Да, пример и тема здесь: http://forum.vingrad.ru/index.php?showtopic=115734&view=findpost&p=886924 Кроме того, как я http://forum.vingrad.ru/index.php?showtopic=115292&view=findpost&p=914058, этот баг относится ко всем кнопкам (B, I, цвета). Встроив сделанную процедуру в остальные скрипты, исправим все кнопки. |
| Автор: Sardar 21.11.2006, 19:31 |
| 12345c, неужели оно того стоит? Переводить ИЕ на не родные для него selectionStart/End, вычисляя их несколькими TextRange...? Может тормозить и не будет, но менять придётся почти весь функционал TextAreaSelectionHelper для ИЕ... Тогда уж лучше начать заново и реализовать в TextAreaSelectionHelper множественные селекции, просто станет сделать автодополнение и прочие фичи современного редактора. А затем взять и выбросить весь код, когда textarea замениться WYSIWYG редактором... Кстати, попроси у Wowa доступ до SVN'a, там скрипты не сжатые. |
| Автор: 12345c 21.11.2006, 23:04 |
| А иначе будет присутствовать этот баг с пропаданием в селекции последних переносов. Для чего нужны множественные селекции? Это, наверное, другой вопрос. Когда планируется заменить на WYSIWYG ? |
| Автор: Zeroglif 22.11.2006, 16:21 | ||
А так ли нужно захватывать в селекцию пустые строки в конце и делать им индент? Не знаю, кто как, но я за собой такого не замечал. Взвешенный вариант, пусть даже и с некоторыми IE-багами, вполне подойдёт. Мне лично не хватает того, чтобы был индент по TAB и чтобы при инденте была видимая (подсвеченная) селекция блока, который двигается. Кстати, этого же самого не хватает при применении BBCodes, хотца, чтобы выделенный текст оставался выделенным, пока я сам ручками с него не уйду. |
| Автор: 12345c 22.11.2006, 19:54 |
| Разве приятно, когда редактор делает не то, что от него ожидают? А тут он делает не просто не то, а удаляет переносы, которые выставлены с определённой целью. И "работает" баг не только в конце текста (писал выше), а в любом случае, если в конце выделенного участка находятся переносы. Он (IE) их все удаляет. В IE7, кстати, баг сохранился, чему я нисколько не удивляюсь |
| Автор: Sardar 22.11.2006, 20:04 | ||
На самом деле текст остаётся выделенным (мне тоже так нравиться), но вроде как думали что большинству это будет не удобно, потому сразу после вставки селекция коллапсируется в конец. Надо закоментировать post.collapse(false); во всех ubbc_* функцях. Удобно с текстом работать. Разного рода авто дополнения, одновременное редактирование в нескольких местах (изменяем имя переменной, оно изменяется везде), в общем всё то, что для простой textarea никогда не нужно будет Не знаю, но то, что когда-нибудь это произойдёт, уверен. Вывод: может проголосуем? Менять ли код для ИЕ (и фактически переписать TextAreaSelectionHelper) или оставить как есть предположив что большинство программистов сидят на лисе или опере? Я против. |
| Автор: 12345c 22.11.2006, 21:28 |
| для них же нужен интуитивный интерфейс. Где они вообще применяются, в каком продукте? Как переключаться с одной на другую? Мне тоже до лампочки, хотя в основном сижу под IE. Потому что в среднем на сайтах его лучше поддерживают, чем остальные. А в поле ввода не пишу коды длиннее 50 символов. Но если людям надо, то почему бы не сделать, и сам будешь знать, что вставлять при таких случаях. Я вот сделал "4 пробела" для IE - знаю, во что это выливается |
| Автор: Sardar 22.11.2006, 21:49 | ||
Это вообще скрыто от пользователя, API для конкретного софта. Изначально задумывалось (этак с недели две назад) для работы по шаблону. Например вставляется некий шаблон (ctrl-T shift-A), курсор прыгает в нужную позицию в тексте. Написали, затем tab и курсор прыгает на какое нибудь другое поле в тексте. Также можно писать в одном месте, а оно будет как бы печататься во многих местах. Селекция в данном случае обьект, через который текст вставляется/изменяется. Множественная селекция позволяет создать селекцию в определённом месте (визуально не видно), а при изменении текста она сама подправляет смещения, что бы оставаться на своём месте. А вообще это оффтоп, если интересно, пиши в личку |
| Автор: Zeroglif 22.11.2006, 22:31 | ||
Я аналогично, мороки столько и без этого. Мы с Sardar-ом тоже... как-никак узнали. :-)
А и нефиг народу выделять оконечные пустые строки для индента, в этом сложно смысл найти по большому счёту. Или пустая строка для красоты, или для писанины, тогда уж напиши в неё, а потому уж индентом её, родимую, индентом. |
| Автор: 12345c 1.12.2006, 16:13 |
| Girder, ...И? |
| Автор: Girder 1.12.2006, 16:50 | ||
| Что и? PS: Sardar кое какие решения залилвал на SVN. Или ты про енто:
|
| Автор: S.A.P. 1.12.2006, 17:19 |
| Exception, можно. Но это не понравится клавиатурщикам, которые используют таб для перемещения по элементам. |
| Автор: 12345c 1.12.2006, 17:30 |
| Я про продолжение дела - дописывать ли код для форума, кто будет дописывать - вопрос висит долго. Ты, Girder, говорил, что кода добавляется многовато. Обсудили - у всех так получается. Поэтому неясно, будем ли вообще делать усилия по внедрению. Про "Менять ли код для ИЕ (и фактически переписать TextAreaSelectionHelper)" - все не сидят на Лисе, но современный код тоже всех устраивает, поэтому я за устранение проявления бага в ИЕ взялся бы только ради оправдания появления исправляющего этот баг кода для "4 пробелов". Раз уж для такой редкой функции исправляем (там актуально), то почему бы не подправить все остальные. Но, повторюсь, для всех остальных это не критично. То, что Sardar на тестирование заливал если ты это - http://forum.vingrad.ru/index.php?showtopic=115292&view=findpost&p=930957 имеешь в виду) - там баг IE остаётся. Если делать на моём скрипте, то я доделаю его дня за 2, выложу на тест по всем браузерам, вставим. Вроде бы проголосовали, что скрипт нужен, против может быть соображение, что добавится КБа 2.5-3 кода. Впрочем, если заодно TextAreaSelectionHelper переписать с использованием этого кода - могу взяться, хотя трое уже против Добавлено @ 17:33 S.A.P., Exception, действительно, от табов в диалогах с pythonwin, давно отказались по этой причине - что табы некоторые используют для переходов между полями. Добавлено @ 17:34 А Ctrl+[ - стандартные кнопки для IDE для Python, с его слов. |
| Автор: Girder 1.12.2006, 20:04 | ||
PS: А на счет всего остального - не мне одному решать-то |
| Автор: Wowa 1.12.2006, 20:59 |
мне кажется, что это очень много... |
| Автор: Sardar 1.12.2006, 21:02 | ||||||
Попробуй, лишним не будет, заменить моё твоим - дело 5 минут
Лучше напишиTextAreaSelectionHelper по новой. Публичны интерфейс тот же, что бы старые скрипты не ворошить (да и междумордие не плохо вышло). Лучше выкладывай промежуточные версии открыто |
| Автор: R.M. 1.12.2006, 21:05 |
| А почему собственно пробела 3 вставляется а не 4 |
| Автор: pythonwin 2.12.2006, 12:06 |
| семейство Mozilla + Opera + ешё какие есть браузеры под linux и обязательно 4 пробела |
| Автор: 12345c 2.12.2006, 21:15 |
| Немоноширинный шрифт, наверное. Sardar, Wowa, Girder, дописанный скрипт для всех основных браузеров с комментариями и демонстрацией - в http://forum.vingrad.ru/topic-124918.html . (Интегрирующийся в форум.) Нужно протестировать на других ОС и дописать, например, поддержку Маков. Поэтому жду результатов тестирования. Переписать TextAreaSelectionHelper могу, но лучше по частям. Тем более, ты говоришь, что время жизни этого поля ввода подходит к концу (0.5-1 год?), а за это время переписывание может не понадобиться. Хорошо, если эту часть добьём. По объёму - в теме с выложенным кодом видно, что лишнего там нет, а использовать написанные ранее функции можно только как оболочку вызова. Такова уж задача, что требует в сумме 2700 байт (подсчитал, убрав комментарии и отступы). Ну можно там на 100-200 байт сократить. |
| Автор: pythonwin 17.2.2007, 14:08 |
| 12345c, Sardar, Girder, спасибо за эту функциональность ++1 прошу простить если кому-нибудь не поставил ++1 и не сказал спасибо |