Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Подсветка синтаксиса кода [6]
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Подсветка синтаксиса кода

Страниц (7): « 1 2 3 4 5 [6] 7 »
 

76. esterio - 17 Января, 2013 - 21:54:28 - перейти к сообщению
Ну ето Ваш выбор, хотел секономить Вам время.
А так
http://php.net/manual/ru/reserved.constants.php
Там внизу есть список разширень входящый в состав ядра
http://php.net/manual/ru/extensi....membership.core
далле например для дат
http://php.net/manual/ru/datetime.constants.php
И так по очереди.

П.С. Ну как средство автоматизации - можно сделать парсер докы


Да прибудет Вам сила составить весь список Радость Радость Радость
77. Мелкий - 17 Января, 2013 - 21:54:31 - перейти к сообщению
OrmaJever пишет:
Константы и ключевые слова берутся из списка

http://php.net/manual/en/functio...ed-constants.php
http://php.net/manual/en/functio...ed-functions.php
http://php.net/manual/en/functio...ared-classes.php
78. OrmaJever - 17 Января, 2013 - 21:54:34 - перейти к сообщению
heredoc реализирован, проверьте.
Кто нибудь что нибудь неверное ещё нашёл?
79. DelphinPRO - 17 Января, 2013 - 21:54:37 - перейти к сообщению
пользовательская функция http://clip2net[dot]com/s/2HRYP

отступы исчезли http://clip2net[dot]com/s/2HS3g (проявилось один раз в большом файле)

ps а в нетбинс еще методы классов подсвечиваются Закатив глазки
(Добавление)
с HEREDOC вообще html код вылез Улыбка http://clip2net[dot]com/s/2HSbu
(Добавление)
вот вам код для опытов

Спойлер (Отобразить)
80. OrmaJever - 17 Января, 2013 - 21:54:40 - перейти к сообщению
DelphinPRO пишет:
пользовательская функция http://clip2net.com/s/2HRYP

Точно встроеная? Можно сылку на php.net?
DelphinPRO пишет:
отступы исчезли http://clip2net[dot]com/s/2HS3g (проявилось один раз в большом файле)

это всё из-за пробелов, если отступы зделаны пробелами то они не заменяются на html пробелы, они просто тображаются в исходном коде, потом я подумаю над этим. Заменяются только табы.
DelphinPRO пишет:
с HEREDOC вообще html код вылез http://clip2net.com/s/2HSbu

забыл экранизацию, исправил.
(Добавление)
Исправил пробелы. Ну вот к вечеру вырисовывается неплохая подсветка Подмигивание
81. DeepVarvar - 17 Января, 2013 - 21:54:43 - перейти к сообщению
Fatal error: Maximum execution time of 20 seconds exceeded in .../highlight.class.php on line 124
82. OrmaJever - 17 Января, 2013 - 21:54:46 - перейти к сообщению
код?
(Добавление)
ага понял, не закрытый коментарий, исправил.
(Добавление)
Добавил подсветку стандартных классов, пока только в операторе new, тоесть статический вызов не подсвечивается.
83. DelphinPRO - 17 Января, 2013 - 21:54:49 - перейти к сообщению
OrmaJever пишет:
Точно встроеная?

пользовательская функция Улыбка я определил функцию со словом array - часть подсветило. не нужно подсвечивать ключевые слова в составе других слов
84. Саныч - 17 Января, 2013 - 21:54:52 - перейти к сообщению
OrmaJever пишет:
Были наброски кода и идея зделать мир лучше, но всё небыло времени, но Саныч меня вдохновил, и я решил закончить начатое.
Улыбка А я сегодня весь день свой JSSyntaxHighlighter допиливаю, перепиливаю Улыбка

Я особо не тестил, всунул первый попавшийся кусок кода, что был под рукой. В итоге:
0. была строка, в которой перечислены управляющие конструкции (if, for, catch и др.). Все они подсветились и сожрались табы перед ними. Но ведь это строка...
1. проблема с многострочными комментами, как и у меня была помнишь? Жрет по максимуму, убери жадность в регулярке.
2. Плюс дописало */ в самом конце кода, хоть его там не было.
3. цвета конечно ядовые))

з.ы. не хочешь заморочиться и сделать подсветку стандартных функций/методов? Не всех, хотя бы базовых. Если не изменяет память их там чуть больше тысячи Ха-ха
(Добавление)
еще косячек. В коде
Сожрало плюсы. Вместо них 2 неразрывных пробела.
(Добавление)
Еще хорошо юы подсвечивать приведение типов (int) (string) и др. И константы тоже как-то выделять.
85. OrmaJever - 17 Января, 2013 - 21:54:55 - перейти к сообщению
Саныч пишет:
0. была строка, в которой перечислены управляющие конструкции (if, for, catch и др.). Все они подсветились и сожрались табы перед ними. Но ведь это строка...

Не понял, что это за строка? Растерялся
Саныч пишет:
1. проблема с многострочными комментами, как и у меня была помнишь? Жрет по максимуму, убери жадность в регулярке.
2. Плюс дописало */ в самом конце кода, хоть его там не было.

да я же это исправил вроде, если нет то дай пример кода.
Саныч пишет:
Сожрало плюсы. Вместо них 2 неразрывных пробела.

Парсер посчитал что они там не нужны Ха-ха Ладно щас исправлю.
Саныч пишет:
Еще хорошо юы подсвечивать приведение типов (int) (string) и др.

Блин точно! Вот чего не хватает!
Саныч пишет:
И константы тоже как-то выделять.

Константы весч интересная, их можно перепутать с именем класса, или функцией, но уже есть пару идей по их парсингу, скоро зделаю.
Саныч пишет:
Жрет по максимуму, убери жадность в регулярке.

Парсер не использует ни единой регулярки.
86. Саныч - 17 Января, 2013 - 21:54:58 - перейти к сообщению
OrmaJever пишет:
Не понял, что это за строка?
Обычная строка, в одинарных кавычках.
Спойлер (Отобразить)


OrmaJever пишет:
да я же это исправил вроде, если нет то дай пример кода.
Прикрепил скрин

OrmaJever пишет:
Парсер не использует не единой регулярки.
Не понял А как тогда? Построчно/посимвольно читаешь?

OrmaJever пишет:
Константы весч интересная, их можно перепутать с именем класса, или функцией, но уже есть пару идей по их парсингу, скоро зделаю.
Заранее по ходу разбора кода писать в массив все устанавливаемые константы, ну дальше понятно думаю...
87. DelphinPRO - 17 Января, 2013 - 21:55:01 - перейти к сообщению
OrmaJever я бы на вашем месте подумал о написании тестов. все-таки много нюансов придется учитывать — ручной проверкой все не уследишь
88. DeepVarvar - 17 Января, 2013 - 21:55:04 - перейти к сообщению
0) При отсутствии открывающего <?php подсветка не корректна.
1) Нет подсветки статических классов и их методов.
2) "Хавает" пробелы у комментариев.

Код уже проходит и не падает на лимите времени, ты видимо что-то там в этот момент редактировал.

Вот тестовый:
PHP:
скопировать код в буфер обмена
  1. if (true) {
  2.  
  3.  
  4.     /**
  5.      * TODO bla-bla
  6.      */
  7.  
  8.     className1::method();
  9.  
  10.  
  11.     /**
  12.      * TODO more bla-bla
  13.      */
  14.  
  15.     className2::method2();
  16.  
  17. } else {
  18.     $wrapper->set($obj->method());
  19.     className3::method3();
  20. }
89. Саныч - 17 Января, 2013 - 21:55:07 - перейти к сообщению
DelphinPRO, на написание тестов времени уйдет не меньше чем на ручную проверку...


Я вот так щас задумался... js вроде попроще будет в плане синтаксиса Улыбка
90. DelphinPRO - 17 Января, 2013 - 21:55:10 - перейти к сообщению
Саныч, я понимаю, но это значительно облегчит дальнейшую отладку и поддержку.
(Добавление)
Саныч пишет:
А как тогда? Построчно/посимвольно читаешь?
тоже интересно. Синтаксический анализатор?

 

Powered by ExBB FM 1.0 RC1