Вставка кусков кода в сообщения форум
Многие просили и вот свершилось: вставлять код в сообщения можно легко с помощь крайне-правой кнопки на панели инструментов.
Далее, пара тестов:
(define-route colorize-code ("colorize"
:method :post
:render-method 'identity)
(let ((code (hunchentoot:post-parameter "code"))
(lang (hunchentoot:post-parameter "lang")))
(colorize::html-colorization (or (find-symbol lang :keyword)
(error "Unknow coloring type: ~A" lang))
code)))
:method :post
:render-method 'identity)
(let ((code (hunchentoot:post-parameter "code"))
(lang (hunchentoot:post-parameter "lang")))
(colorize::html-colorization (or (find-symbol lang :keyword)
(error "Unknow coloring type: ~A" lang))
code)))
И ещё один
@staticmethod
def myWonderfulMethod():
return "Некоторый метод"
def myWonderfulMethod():
return "Некоторый метод"
Просьба в этом топике протестировать новую возможность ;)
[#] Ответ на комментарий от Victor 09.05.2010 22:36
> Erlang, сломана раскраска видимо.
Хм, Colorize данный код никак не подсвечивает. А что тут можно подсвечивать то? Вообще, лучше всего подсвечивается Common Lisp ;)
И ещё, в момент редактирования раскраски не будет (по крайней мере, пока). Но в самом сообщении она в итоге появится.
[#] Ответ на комментарий от Victor 09.05.2010 22:36
package test;
import java.util.*;
import static java.util.Math.*;
public class Test{
public static void main(String args[]){
final int n=0;
System.out.println(n);
}
}
import java.util.*;
import static java.util.Math.*;
public class Test{
public static void main(String args[]){
final int n=0;
System.out.println(n);
}
}
[#] Ответ на комментарий от Ander Skirnir 10.05.2010 03:07
Работает вполне ок :)
Еще было б хорошо подкраску &key, &optional, &rest, ..., <=
Еще было б хорошо подкраску &key, &optional, &rest, ..., <=
[#] Ответ на комментарий от Ander Skirnir 10.05.2010 03:12
> Еще было б хорошо подкраску &key, &optional, &rest, ..., <=
Для этого надо colorize патчить, исходный код здесь ;)
[#] Ответ на комментарий от archimag 10.05.2010 03:32
Правильно ли я понял, что символы лежать где-то на сервере в "Data/Map_Sym.txt" ?
[#] Ответ на комментарий от Ander Skirnir 12.05.2010 15:59
> Правильно ли я понял, что символы лежать где-то на сервере в "Data/Map_Sym.txt" ?
Какие символы? Яснее, пожалуйста, ещё яснее ;)
[#] Ответ на комментарий от archimag 12.05.2010 16:14
А, да надо разбираться, я глубоко не вникал в работу этой штуки.
[#] Ответ на комментарий от archimag 12.05.2010 16:15
(defparameter *hyperspec-map-file*
(merge-pathnames "Data/Map_Sym.txt" *hyperspec-pathname*))
(with-open-file (s *hyperspec-map-file* :if-does-not-exist nil)
;; populate the table with the symbols from the Map file
;; this bit is easy and portable.
...
(do ((symbol-name (read-line s nil s) (read-line s nil s))
(url (read-line s nil s) (read-line s nil s)))
((eq url s) 'done)
(set-symbol symbol-name (concatenate 'string *hyperspec-root* (subseq url 3)))))
(merge-pathnames "Data/Map_Sym.txt" *hyperspec-pathname*))
(with-open-file (s *hyperspec-map-file* :if-does-not-exist nil)
;; populate the table with the symbols from the Map file
;; this bit is easy and portable.
...
(do ((symbol-name (read-line s nil s) (read-line s nil s))
(url (read-line s nil s) (read-line s nil s)))
((eq url s) 'done)
(set-symbol symbol-name (concatenate 'string *hyperspec-root* (subseq url 3)))))
То есть, чтобы &key, &optional, &rest, ..., <= разукрашивались, нужно вместе с ссылками закинуть в этот файл (предположительно). Беда в том, что именно этого файла на гитхабе нету.
[#] Ответ на комментарий от Ander Skirnir 12.05.2010 16:25
> Беда в том, что именно этого файла на гитхабе нету.
Этот файл из hyperspec, а путь к hyperspec задаётся с помощью *heperspec-pathname*. Его менять не стоит ;)
[#] Ответ на комментарий от Ander Skirnir 12.05.2010 17:57
Все эти символы там есть. Так что проблема не в этом.
[#] Ответ на комментарий от Ander Skirnir 12.05.2010 18:00
Есть предположение, что проблема в парсере символов - если начинается не с буквы - не подкрашивает.
[#] Ответ на комментарий от Ander Skirnir 12.05.2010 18:02
> Есть предположение, что проблема в парсере символов - если начинается не с буквы - не подкрашивает.
Ну, дык, в этом суть патчинга: сначала понять, а потом исправить ;)
[#] Ответ на комментарий от archimag 12.05.2010 18:07
Ну это я на всякий случай сказал - Вы же патчили scan-string, вдруг бы сразу вспомнили что-то :)
[#] Ответ на комментарий от Ander Skirnir 13.05.2010 02:43
Пофиксил, но с git - ужас какой-то. Никак не могу разобраться, как закоммитить.
[#] Ответ на комментарий от Ander Skirnir 22.05.2010 17:55
> Никак не могу разобраться, как закоммитить.
Закоммитить куда? Тебе надо форкнуть colorize с моей страницы и внести в неё изменения. Я посмотрю и если все хорошо, то смежру в свою версию и обновлю на сайте.
[#] Ответ на комментарий от Ander Skirnir 24.05.2010 19:51
> Вроде получилось.
А можешь ещё сделать, что бы оно не парсило Hyperspec каждый раз при компиляции? А то из-за этого пришлось памяти на данном сервере добавлять - в свап уходило. Т.е. нужно распарсенную инфу сохранять в файл, который будет самостоятельно грузится, так сделано для Scheme.
[#] Ответ на комментарий от Ander Skirnir 29.05.2010 04:13
> Сделал.
Хм, я не понял что :(
- Я не понял, как изменился способ подсвечивания кода - запустил и не увидел разницы, как смотреть?
- Не понял, что ты сделал с зависимость от Hyperspec?
- Основная часть видимых изменений - не имеющее отношения к делу переформатирование и т.п. Т.е. просматривая изменения я не могу увидеть реальных изменений, ибо они растворяются на фоне ничего не значащих мелочей. Это плохая практика - внося изменения для подготовки патча не следует изменять без нужны оригинальное форматирование и т.п. - все изменения должны быть по существу.
[#] Ответ на комментарий от archimag 31.05.2010 13:21
> Я не понял, как изменился способ подсвечивания кода - запустил и не
увидел разницы, как смотреть?
Начали подсвечиваться lambda-list-keywords (&key, &rest ...) и функции с <,=,>
> Не понял, что ты сделал с зависимость от Hyperspec?
Теперь таблички грузятся с файла. Если его нет, грузятся с гиперспеки и дампаются в файл.
Вообще, есть мысль полностью убрать загрузку с гиперспеки. Не думаю, что там часто уж что-то меняется.
> Основная часть видимых изменений - не имеющее отношения к делу переформатирование и т.п.
Окей, учту.
Начали подсвечиваться lambda-list-keywords (&key, &rest ...) и функции с <,=,>
> Не понял, что ты сделал с зависимость от Hyperspec?
Теперь таблички грузятся с файла. Если его нет, грузятся с гиперспеки и дампаются в файл.
Вообще, есть мысль полностью убрать загрузку с гиперспеки. Не думаю, что там часто уж что-то меняется.
> Основная часть видимых изменений - не имеющее отношения к делу переформатирование и т.п.
Окей, учту.
[#] Ответ на комментарий от Ander Skirnir 01.06.2010 07:09
> Начали подсвечиваться lambda-list-keywords (&key, &rest ...) и функции с <,=,>
Ну, дык, я попробовал и не заметил данного эффекта. На каком примере кода можно посмотреть?
> Теперь таблички грузятся с файла. Если его нет, грузятся с гиперспеки и дампаются в файл
Нет, это же ничего не даёт. Оно и так парсилось только тогда, когда .fasl-файлов не было. Там вообще не нужна зависимость от hyperspec. Надо парсинг и сохранение в файл выделить в отдельный модуль. А файл, который получается в результате парсинга включить в состав пакета и использовать его непосредственно. Т.е. тут две цели: избавиться от зависимости от Hyperspec - это упростит распространение, избавиться от парсинга на этапе компиляции - слабые машины с ограниченным размером доступной памяти (например, виртуалки) перестанут вляпываться в свап.
[#] Ответ на комментарий от archimag 01.06.2010 17:49
Сейчас завал, после сессии буду разбираться. Идея выделить загрузку в отдельный модуль мне уже кажется интуитивной, но почему-то в прошлый раз решил оставить ближе к оригиналу.
Пару вопросов:
Пару вопросов:
- когда на гитхубе делаешь merge файла X с каким-то коммитом Y, он учитывает все предыдущие (Y) вплоть до совпадающей с данным X версии? (наверное, глупый вопрос, но вдруг нет)
- нету ведь ничего плохого в рефакторинге: нужно просто разделять чисто-рефакторинги и патчи в разных коммитах ?
[#] Ответ на комментарий от Ander Skirnir 04.06.2010 06:45
> когда на гитхубе делаешь merge
Есть. Если ты собираешься серьёзно заниматься разработкой библиотеки и её текущее состояние мешает этому, то, конечно, рефакторинг нужен. Но если ты хочешь сделать всего несколько изменений - то нет. Ибо, возможно в будущем придёться объединять с какой-нибудь другой версией (например, с той, что используется на paste.lisp.org) и в этом случае, лучше если различия будут минимальны.
Во-первых, гитхуб это всего лишь хостинг ;) Во-вторых, да. Но зачем ты делаешь merge?
> нету ведь ничего плохого в рефакторинге: нужно просто разделять чисто-рефакторинги и патчи в разных коммитах ?
Есть. Если ты собираешься серьёзно заниматься разработкой библиотеки и её текущее состояние мешает этому, то, конечно, рефакторинг нужен. Но если ты хочешь сделать всего несколько изменений - то нет. Ибо, возможно в будущем придёться объединять с какой-нибудь другой версией (например, с той, что используется на paste.lisp.org) и в этом случае, лучше если различия будут минимальны.
[#]
Хотелось бы подсвечивание разными цветами уровни вложенности скобок при наведении курсора мыши. Сам бы пофиксил, но в JavaScript --- ноль.