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 :: Версия для печати :: Подсветка синтаксиса кода [4]
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Подсветка синтаксиса кода

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

46. OrmaJever - 17 Января, 2013 - 13:06:26 - перейти к сообщению
esterio пишет:
Та да, у Вас там походу идет парсинг phpDoc. Слижком много вариантов. Если не секрет сколько в строк(не символов) уместилась регулярка, или Вы несколькома делаете, и вообще сколько код весит. Интересно

я же говорил в моём коде не используется не одна регулярка, да и вобще из стандартных php функций там мало что используется, htmlentities в основном и strlen. На теперешний момент файл с кодом имеет 539 строк, но я пишу каждую фигурную скобку с новой строки поэтому ~20% строк это просто фигурные скобки. Файл веси 16 496 байт.
47. esterio - 17 Января, 2013 - 13:49:54 - перейти к сообщению
Ну если Вы делаете JS и PHP, то может мне стоит сделать HTML. О тм намного проще,
Вариантов несколько
1. регулярки
2. domDocument
3. js на стороне клиента

Если завтра успешно здадим проект то думаю возьмусь
48. Саныч - 17 Января, 2013 - 14:33:22 - перейти к сообщению
OrmaJever пишет:
опять какие-то проблемы с коментариями
Я бы даже сказал они вобще не работают... Однострочные нормально, многострочнуе - первые символы /* подсечиваются и дальше все...

esterio, понял. Не думаю что с использованием этой функции упроститься задача. Тем более судя по комментариям с ней не все впорядке...
Для JS не знаю... Браузер то полюбому как-то парсит код, но вот на сколько я знаю API для этого нет никаких. Но я его все равно сделаю, как на серваке так и на клиенте!

esterio пишет:
И да Саныч прав, составлять список трудоемкый процес
Не особо трудоемкий, нудный просто... У меня к примеру массив стандартных свойств, методов и констант javascript-а получился почти 550 элементов. На составление потрачено: 1 день и пол ночи Улыбка
49. esterio - 17 Января, 2013 - 15:16:50 - перейти к сообщению
Саныч пишет:
Не думаю что с использованием этой функции упроститься задача

Последний комент год назад, думаю счас подправили, но не уверен, а так использовал для своего автоматического автолоадера классов, он у меня составляет список с путями, вроде проблем не было, или потому что травлю только свой код
(Добавление)
Саныч пишет:
1 день и пол ночи

Делов то, сутку потратить, я ленивый человек, ту же сутку сидел и делал бы парсер докы)))
50. Саныч - 17 Января, 2013 - 16:00:18 - перейти к сообщению
esterio пишет:
Ну если Вы делаете JS и PHP, то может мне стоит сделать HTML. О тм намного проще,
Вариантов несколько
1. регулярки
2. domDocument
3. js на стороне клиента
Делайте конечно, оценим, потестируем, может в итоге объединим все наши наработки в единый проект.
Только знайте, я парсер HTML и CSS уже написал Улыбка
HTML - ровно 20 строк, 3 регулярки
CSS - 25 строк, 5 регулярок. Но буду переписывать, не нравится мне он...

О знаю! До SQL еще никто из нас не добрался Улыбка
51. esterio - 17 Января, 2013 - 16:43:46 - перейти к сообщению
Саныч пишет:
О знаю! До SQL еще никто из нас не добрался

Нахмурился Нахмурился Нахмурился
Ну тогда наверно то что нужно раз все уже есть.
Счас посмотрю что уже есть из имеещого арсенала
52. Саныч - 17 Января, 2013 - 17:27:14 - перейти к сообщению
esterio пишет:
Делов то, сутку потратить, я ленивый человек, ту же сутку сидел и делал бы парсер докы)))
Знаете как я в итоге поступил?.. Написал маленький кодик на js который выдавал мне строку всех доступных свойств и методов. Запустил его во всех браузерах, и скопировал полученые строки в массив. Затем еще один маленький кодик на php который показал мне, какие методы и свойства есть во всех браузерах. Ну, а затем полученный массив уже вручную фильтровался, выстраивалась иерархия, незнакомые/подзабытые свойства отыскивались в документации, гугле, короче решалось нужно ли оно мне или нет... В итоге 550 и почти сутки, с перерывами конечно, но все же...


OrmaJever, может нам объеденить наши темы, а то мы тут уже как-то смешали и php и js...
53. OrmaJever - 17 Января, 2013 - 18:10:42 - перейти к сообщению
Саныч пишет:
HTML - ровно 20 строк, 3 регулярки
CSS - 25 строк, 5 регулярок. Но буду переписывать, не нравится мне он...

Можно усложнить задачу, HTML5, CSS3
Саныч пишет:
О знаю! До SQL еще никто из нас не добрался

Спокойно, он мой. Хорошо Я только пока не придумал как отличить sql запрос от обычной строки. Если регуляркой то какой?
54. esterio - 17 Января, 2013 - 18:54:10 - перейти к сообщению
http://www.phpclasses[dot]org/browse/file/24895[dot]html
вот нарыл, если взять за основу, можно хорошо переделать, а так главное основа есть(тоесть список ключевых слов, я же говорил что ленив я)
55. Саныч - 17 Января, 2013 - 19:37:38 - перейти к сообщению
OrmaJever пишет:
Можно усложнить задачу, HTML5, CSS3
Ну изначально так и задумывалось и вроде бы так и получилось, но... как всегда есть но, сейчас там именно подсетка, т.е. светим разными цветами и все... а хочеться сделать именно умный парсер, чтоб была подсетка ошибок, возможно автоисправление... По этому, я думаю они будут еще ни раз переписаны Ха-ха

OrmaJever пишет:
Я только пока не придумал как отличить sql запрос от обычной строки. Если регуляркой то какой?
Я думал сначало проверять строку на наличие таких слов как SELECT, INSERT, ALTER, FROM... ну ты понял. А дальше уже либо гонять через регулярки, либо посимвольно разбирать...
56. esterio - 17 Января, 2013 - 20:21:06 - перейти к сообщению
Саныч
Да чет я до такого не додумался. Ето ж прикольно. а прототипи учитивали?

Да конечно стоить обьеденит, под названием парсеры кода или как то так.
OrmaJever пишет:
Спокойно, он мой. Хорошо Я только пока не придумал как отличить sql запрос от обычной строки. Если регуляркой то какой?

Ну думаю после практикы з PHP я Вам не конкурент Радость Радость
(Добавление)
Саныч
О только что рпишла мысля одна, в notepad++ есть все ключевые слова(или почти все)
Вот кусок конфига для ПыХы
Спойлер (Отобразить)


Весь не бросал так как слишком большой, вот как можно сделать раз и на все языки
57. OrmaJever - 17 Января, 2013 - 21:04:34 - перейти к сообщению
Так хватит тут не по теме говорить, Кидайте коды в парсер, мне важны ошибки.
58. Саныч - 17 Января, 2013 - 21:11:51 - перейти к сообщению
esterio пишет:
а прототипи учитивали?
Естественно. Весь js собственно на них и построен.

esterio пишет:
О только что рпишла мысля одна, в notepad++ есть все ключевые слова(или почти все)
Ну так этож ключевые слова... Их мало, очень мало... Мне же нужны были методы и свойства, а их notepad++ не светит. К примеру Dreamweaver, которым я постоянно пользуюсь, светит, но далеко не все... Но он их как светит, просто видит "знакомое" слово и светит его, без разбора. К примеру я могу написать var parse, и он его подсветит, я же хочу написать, чтоб он еще и "думал", что нужно светить, а что нет. К тому же в js есть свойства/методы которые есть только, к примеру, у объекта window, есть которые только у document, только у нодов, а есть такие что везде, но кроме window и т.д. и т.п. И вот все это хочу учесть...

OrmaJever пишет:
Так хватит тут не по теме говорить, Кидайте коды в парсер, мне важны ошибки.
Все молчу, молчу, молчу... Улыбка Улыбка

я кинул пару кодов, вроде нормально... по крайней мере комменты работают Улыбка
59. esterio - 17 Января, 2013 - 21:19:08 - перейти к сообщению
ок извините за оффтоп
А так далее статическые вызовы не работают, Цвет обьекта хорошо бы другим цветом
(Добавление)
PHP:
скопировать код в буфер обмена
  1. if (vmShouldDebug()) {  /*@MWM1: Log/Debug enhancements */
  2.          $end = utime();
  3.          $runtime = $end - $start;
  4.          
  5.          include( PAGEPATH . "shop.debug.php" );
  6.       }


Вот код из джумлы. Вызов vmShouldDebug не подсветился
60. OrmaJever - 17 Января, 2013 - 21:26:25 - перейти к сообщению
esterio пишет:
А так далее статическые вызовы не работают, Цвет обьекта хорошо бы другим цветом

я не совсем понял, но обьект это переменая и они подсвечиввается как переменая потому что
1) иначе была бы неразбериха и радуга
2) более важное что мой парсер не знает типов переменых, он ещё глупенький.

А статический вызов по имени класса должен подсвечивать это имя, если это не так то код в студию.
С именами класов и констант могут быть проблемы, но не потому что что-то сломалось, а потому что я это не учёл.
Классы подсвечиваются либо после оператора new либо если за именем стоит :: или имя переменой и если это не имя стандартной функции или ключевого слова.
Константы подсвечиваются после классов и проверяется что бы после имени константы небыло ( или {, других случаев я не вспомнил.
(Добавление)
esterio пишет:
Вот код из джумлы. Вызов vmShouldDebug не подсветился

Пользовательские функции не подсвечиваются, вроде и хотел зделать и откладывал, сейчас займусь.

 

Powered by ExBB FM 1.0 RC1