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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подсветка синтаксиса кода [6]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: PHP, JavaScript, HTML, CSS
esterio
Отправлено: 17 Января, 2013 - 21:54:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
Ну ето Ваш выбор, хотел секономить Вам время.
А так
http://php.net/manual/ru/reserved.constants.php
Там внизу есть список разширень входящый в состав ядра
http://php.net/manual/ru/extensi....membership.core
далле например для дат
http://php.net/manual/ru/datetime.constants.php
И так по очереди.

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


Да прибудет Вам сила составить весь список Радость Радость Радость

(Отредактировано автором: 13 Января, 2013 - 18:17:11)

 
 Top
Мелкий Супермодератор
Отправлено: 17 Января, 2013 - 21:54:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
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


-----
PostgreSQL DBA
 
 Top
OrmaJever Модератор
Отправлено: 17 Января, 2013 - 21:54:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
heredoc реализирован, проверьте.
Кто нибудь что нибудь неверное ещё нашёл?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DelphinPRO
Отправлено: 17 Января, 2013 - 21:54:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
пользовательская функция http://clip2net[dot]com/s/2HRYP

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

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

Спойлер (Отобразить)

(Отредактировано автором: 13 Января, 2013 - 19:15:27)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
OrmaJever Модератор
Отправлено: 17 Января, 2013 - 21:54:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
DelphinPRO пишет:
пользовательская функция http://clip2net.com/s/2HRYP

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

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

забыл экранизацию, исправил.
(Добавление)
Исправил пробелы. Ну вот к вечеру вырисовывается неплохая подсветка Подмигивание


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Января, 2013 - 21:54:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
Fatal error: Maximum execution time of 20 seconds exceeded in .../highlight.class.php on line 124
 
 Top
OrmaJever Модератор
Отправлено: 17 Января, 2013 - 21:54:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
код?
(Добавление)
ага понял, не закрытый коментарий, исправил.
(Добавление)
Добавил подсветку стандартных классов, пока только в операторе new, тоесть статический вызов не подсвечивается.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DelphinPRO
Отправлено: 17 Января, 2013 - 21:54:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
OrmaJever пишет:
Точно встроеная?

пользовательская функция Улыбка я определил функцию со словом array - часть подсветило. не нужно подсвечивать ключевые слова в составе других слов


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Саныч Модератор
Отправлено: 17 Января, 2013 - 21:54:52
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
OrmaJever пишет:
Были наброски кода и идея зделать мир лучше, но всё небыло времени, но Саныч меня вдохновил, и я решил закончить начатое.
Улыбка А я сегодня весь день свой JSSyntaxHighlighter допиливаю, перепиливаю Улыбка

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

з.ы. не хочешь заморочиться и сделать подсветку стандартных функций/методов? Не всех, хотя бы базовых. Если не изменяет память их там чуть больше тысячи Ха-ха
(Добавление)
еще косячек. В коде
Сожрало плюсы. Вместо них 2 неразрывных пробела.
(Добавление)
Еще хорошо юы подсвечивать приведение типов (int) (string) и др. И константы тоже как-то выделять.


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
OrmaJever Модератор
Отправлено: 17 Января, 2013 - 21:54:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
Саныч пишет:
0. была строка, в которой перечислены управляющие конструкции (if, for, catch и др.). Все они подсветились и сожрались табы перед ними. Но ведь это строка...

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

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

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

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

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

Парсер не использует ни единой регулярки.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Саныч Модератор
Отправлено: 17 Января, 2013 - 21:54:58
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
OrmaJever пишет:
Не понял, что это за строка?
Обычная строка, в одинарных кавычках.
Спойлер (Отобразить)


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

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

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


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
DelphinPRO
Отправлено: 17 Января, 2013 - 21:55:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
OrmaJever я бы на вашем месте подумал о написании тестов. все-таки много нюансов придется учитывать — ручной проверкой все не уследишь


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Января, 2013 - 21:55:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
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. }
 
 Top
Саныч Модератор
Отправлено: 17 Января, 2013 - 21:55:07
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
DelphinPRO, на написание тестов времени уйдет не меньше чем на ручную проверку...


Я вот так щас задумался... js вроде попроще будет в плане синтаксиса Улыбка


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
DelphinPRO
Отправлено: 17 Января, 2013 - 21:55:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Перенесено из темы "Подсветка синтаксиса PHP"
Саныч, я понимаю, но это значительно облегчит дальнейшую отладку и поддержку.
(Добавление)
Саныч пишет:
А как тогда? Построчно/посимвольно читаешь?
тоже интересно. Синтаксический анализатор?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (7): « 1 2 3 4 5 [6] 7 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB