gifts2017

Раскраска кода 1С [онлайн]

Опубликовал Дмитрий Башинский (bashinsky) в раздел Программирование - Инструментарий

Еще одна раскраска кода 1С онлайн для вставки в html-страницу

Алгоритм раскраски взят из стандартной 1Совской обработки РаскраскаКода.epf, переписан на php, с небольшими доработками по раскраске кода, чего не хватает в обработке.  Код для раскрашивания ограничен 30000 символами, так как этого, я думаю, выше крыши. По крайней мере, я не видел статьи, где кода 1С было свыше 3000 строк. Если кому понадобится раскрасить больше, то код для html-страницы можно вручную отредактировать и соединить в один общий код.  Онлайн раскраску писал для себя, так как постоянно иметь под рукой обработку раскраски не получалось. Предупреждаю сразу, что код 1С раскрашивается, если он написан синтаксически верно. И не надо проверять ее (онлай раскраску) на незакрытые кавычки, код из других языков и т.п. и потом в комментариях писать про эти ошибки. Ведь в статьи вставляют уже готовый, работающий код. Если же будут существенные ошибки в алгоритме раскраски верного кода, буду рад, если напишите в комментариях, можно здесь, можно на сайте раскраски.

Об раскраске: 

На станице раскраски имеются два поля: для кода, который надо раскрасить и для кода который получяется после раскраски, который можно сразу вставлять в html-страницу. 

Справа выводится результат раскрашивания, здесь можно стазу посмотреть как раскрасился код.

Ссылка на сайт раскраски http://likion.ru/color1c/index.php

Скачать файлы

Наименование Файл Версия Размер
php скрипт для сайта 2
.zip 3,88Kb
02.10.16
2
.zip 3,88Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Дмитрий Башинский (bashinsky) 06.05.14 09:27
возникшие ошибки раскраски рабочего кода буду исправлять по мере возможности
2. Виталий Барилко (Diversus) 06.05.14 11:09
(1) Было бы удобно на свой сайт скопировать и пользоваться когда нужно и не искать в интернете, где же я встречал онлайн раскраску.
Если не трудно и не жалко, выложите пожалуйста php-скрипт.
u_n_k_n_o_w_n; +1 Ответить 2
3. Дмитрий (gislink) 07.05.14 11:41
Внутри чисел точка красная, а должна быть черная ;-)
4. Дмитрий (gislink) 07.05.14 11:45
Символы "#" и "&" красят строку в коричневый, только если они являются первым значащим символом в строке, а у Вас - где угодно.
5. Дмитрий (gislink) 07.05.14 11:52
про "enddo" забыл ;-)
все, 3 косячка нашел, пойду покурю.
6. Дмитрий (gislink) 07.05.14 12:07
А вот вопрос еще гложет: по-моему лишнего там span-ов открывается/закрывается. Если одно слово красным, и другое за ним красным - зачем перед пробелом закрывать старый span, а после открывать новый точно такой же, пробел то пофиг каким цветом рисовать.
7. Дмитрий (gislink) 07.05.14 12:13
хехе, а если в строках попадаются спецсимволы HTML (типа "&" или " ") - то ваще беда, да...
8. Дмитрий (gislink) 07.05.14 12:14
+(7) похоже и у Инфостарта та же проблема, я писал &a_m_p; и &n_b_s_p; ;-)
9. Дмитрий (gislink) 07.05.14 12:20
с датами в одинарных кавычках беда.
10. Вадим Латышев (pro1c@inbox.ru) 07.05.14 12:44
Возьмите CopyPaster1C, там все раскрашено!
http://infostart.ru/public/199364/
11. Роман Ложкин (webester) 08.05.14 13:58
(2)Используйте на своем сайте highlight.js он раскрашивает как нужно, без каких либо ограничений(код раскрашивается на клиенте, поэтому серверу наплевать на объем кода). Еще есть питоновская библиотека pygments очень удобная. Если есть необходимость, можно запилить статическую страничку, для раскраски кода. Делов не очень много. Я баловался когда тоже раскраской кода, написал пастебин 1с.
12. Дмитрий Башинский (bashinsky) 10.05.14 22:32
(5) gislink,
про "enddo" забыл ;-)

Это исправил, лишний пробел был в проверочной строке
13. Дмитрий Башинский (bashinsky) 10.05.14 22:56
(4) gislink,
Символы "#" и "&" красят строку в коричневый, только если они являются первым значащим символом в строке, а у Вас - где угодно.

Если эти символы попадаются и они стоят не в кавычках, то после них все остальное красится в коричневый - так у меня. В 1С - если они стоят с начала. Но если в 1С поставить эти символы в середину строки, то будет ошибка.
Для примера.
Правильно:
а=1;
#Если Клиент Тогда
#КонецЕсли

Неправильно:
а=1;#Если Клиент Тогда
#КонецЕсли

Повторюсь, раскраска выполняется синтаксически верного текста, а не идет проверка его на синтаксис.
14. Дмитрий Башинский (bashinsky) 10.05.14 22:57
(7) gislink,
хехе, а если в строках попадаются спецсимволы HTML (типа "&" или " ") - то ваще беда, да...

Можно пример?
15. Дмитрий Башинский (bashinsky) 10.05.14 22:58
(9) gislink,
с датами в одинарных кавычках беда.

Исправлено
16. Дмитрий Башинский (bashinsky) 10.05.14 23:03
(3) gislink,
Внутри чисел точка красная, а должна быть черная ;-)

Это косяк 1Совской обработки, который перешел сюда. Позже исправлю.
17. Дмитрий Башинский (bashinsky) 10.05.14 23:15
(11) webester, будет время, разберусь и с JavaScript.
18. Дмитрий Башинский (bashinsky) 10.05.14 23:38
(2) Diversus,
Было бы удобно на свой сайт скопировать и пользоваться когда нужно и не искать в интернете, где же я встречал онлайн раскраску.
Если не трудно и не жалко, выложите пожалуйста php-скрипт.

Пока выкладывать исходники я не планирую, но можно сделать свою страницу, при открытии которой будет редирект на мою.
Можно использовать написанную мной страницу редиректа http://likion.ru/color1c/color1c.zip, в архиве лежит html файл, его можно запускать хоть с рабочего стола
19. Роман Ложкин (webester) 11.05.14 13:38
(17)Это было не вам. Там разбираться не надо просто подключил библиотеку, она сама раскрасит, код в блоке определенном для этого.
20. Дмитрий (gislink) 12.05.14 11:31
(14) bashinsky,

ну например такой код (символы подчеркивания надо убрать):

а = "<html>&n_b_s_p;</html>";

переведет как:

а = "<html> </html>";

что конечно же неправильно.

21. Дмитрий (gislink) 12.05.14 11:33
+(21) и заодно в поле "
Код 1С для раскраски (мах 30000 символов):" текст тоже изменится.
У меня есть код 1С, который формирует HTML текст, и для такого кода Ваш сервис не годится.
22. Дмитрий (gislink) 12.05.14 11:40
(15) bashinsky,

ну может и исправлено, конечно, если такой код

а = "'20140505'";

должен раскрашиваться так, как он это делает у Вас.
23. Дмитрий Башинский (bashinsky) 12.05.14 12:51
(22) gislink, это поправил.
И добавил возможность использовать html-код спецсимволов в строках. В "Результат" выводится пока не правильно, а вот если "Код для вставки" вставить в исходную страницу, то будет все норм.
24. Дмитрий (gislink) 12.05.14 13:17
(23) bashinsky,

теперь с переносом строк фигня:

а = "20140505
|";

точка с запятой черная.
25. Роман Ложкин (webester) 14.05.14 10:01
Харе ерундой заниматься http://26226.selcdn.ru/paint_1c/ буквально пару часов. Включая гугл, чтение документации и тд. Вот тебе и исходники и регулярные выражения(хочешь подсвети к примеру параметры в функции желтеньким или свои копирайты оранжевым). А еще на офсайте 17тем оформления. Спасибо andrewks он дописал правила до идеальных у него там еще для 77 и для запросов есть. Какой смысл велосипеды городить?
26. Дмитрий Башинский (bashinsky) 14.05.14 11:58
(25) webester, Вот тебе и альтернатива. Что же вы раньше это не написали, а то пришлось свое выдумывать.
27. Роман Ложкин (webester) 14.05.14 15:50
Мне казалось любой благородный дон, должен провести в гугле какое то время прежде чем начать писать велосипед. Если пошерстить гугл хотя бы полчасика, решение всплывает. Еще есть Pygments и SyntaxHighlighter для последних двух правда синтаксис написан энтузиастами, но он есть.
28. Дмитрий Башинский (bashinsky) 15.05.14 09:42
(27) webester, провел не один час в гугле в поисках истины, но нашел только заготовки, а сидеть и разбираться в чужом коде, да еще на неизвестном мне пока языке, как-то не хотелось, пришлось делать свое. Да и в дальнейшем внести изменения туда будет проще.
29. Роман Ложкин (webester) 15.05.14 13:53
(28)странно, очень странно я прям так и написал "подсветка синтаксиса 1с", получил очень много постов как прикрутить расцветку к Notepad++, убрал из выдачи все результаты где есть слово "Notepad++" по третьей ссылке получил нужный результат. Через 15 минут у меня на руках был модуль который раскрашивает код 1С. Результат меня не удовлетворил. Родные правила не раскрашивали скобки и еще какой то был глюк. Через 15минут я нашел сайт где andrewks дает ссылку на свой форк этого проекта. Там все работает как надо, ну или почти как надо. Собственно все. Страничка уже дело техники.
30. Александр (kg_am) 16.06.14 17:54
Спасибо. Не слушайте тех, кто выступает против изобретения велосипедов. Как только люди перестанут изобретать велосипеды, почти сразу придётся пересаживаться на самокаты :)

Вот бы ещё раскраску для языка запросов...
31. Роман Ложкин (webester) 22.07.14 07:25
(30)Ну ну, и вместо 1с у вас самописка, конечно же да? На тему раскраски языка запросов, по ссылкам выше, раскраска языка запросов есть, ее просто надо прикрутить. Сколько потратил бы времени автор, что бы это реализовать? Достаточно много, что бы свести к нулю смысл этого действия.
32. Александр Тупикин (dark_wolf) 05.08.14 10:06
Параметры в запросах "&Параметр" при раскраске делает "& amp;Параметр".
А так суперская штука, не раз выручала.
33. Дмитрий Башинский (bashinsky) 29.08.14 16:31
(32) dark_wolf, в итоговой странице должно выводится правильно без amp
34. V. L. (Vladal) 25.08.15 13:11
Автор уже много собрал интересных алгоритмов и решения, которые раскрашивали онлайн?
Поделись, а?
35. Владислав Теут (darkmessiahan) 03.02.16 14:24
Happy end
Сайт заблокирован хостинг-провайдером.
36. Вадим Латышев (pro1c@inbox.ru) 03.02.16 23:43
вот вам и облака!
у знакомых также crm систему облачную рубанули!
не буду говорить какую, чтобы не рекламировать!
37. serg__k (serg__k) 13.07.16 10:41
К сожалению "бобик сдох"...
пользуюсь этим
https://softonit.ru/free/highlights1c/
38. Дмитрий Башинский (bashinsky) 02.10.16 11:31
Выложил скрипт раскраски. Пользуйтесь кому надо.
39. Олег Шалимов (CaSH_2004) 31.10.16 21:46
(37) Походу еще один "бобик сдох"?
Зашел, вставил код и получил вот это:
Сообщить("тест");

Код получил весь синим - по тегам видно что он и не пытался ничего раскрасить. Или я что то не так понял? Кнопка одна, режима 2 - проверил оба - результат все тот же синий текст.

В общем программисты не справились с попыткой упростить жизнь другим программистам через онлайн :( Оффлайн продолжает рулить!
Если у кого есть еще варианты просьба поделится.

Пока что пользуюсь тут вставкой кода для получения текста :)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа