Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсветка синтаксиса Ruby 
:(
    Опции темы
Cr@$h
Дата 21.9.2006, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: нет
Всего: 41



На форуме ещё не реализована подсветка кода Ruby. Предлагаю ввести её. Программистов, использующих среды программирования и соответствующие редакторы с подсветкой синтаксиса, прошу составить ключевые слова и правила подcветки. После введения подсветки, можно будет использовать тег [code=ruby], который сейчас не окрашивает код Ruby.

За примерами оформления заявки можно обращаться к аналогичным темам других форумов, где уже обсуждалась подсветка (подцветка) синтаксиса. Например, OCamlFortran.

Это сообщение отредактировал(а) Cr@$h - 23.9.2006, 05:36
PM MAIL ICQ   Вверх
skalex
Дата 21.9.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 5
Всего: 23



Вот, набросал тут "на коленке" ... И пока без указания цветов ... Давайте вместе дорабатывать.

Язык регистро-зависимый.

1. Комментарии - цвет: #008000, italic

Однострочный:
Код
# comment

Многострочный:
Код
=begin
comment
=end


2. Строки - цвет: #996600

Код
"text"
'text'

%(text)
%q(text)
%Q(text)

%{text}
%q{text}
%Q{text}

%[text]
%q[text]
%Q[text]

%<text>
%q<text>
%Q<text>

%$text$
%q$text$
%Q$text$

%w(array of strings)
%W(array of strings)

%w{array of strings}
%W{array of strings}

%w[array of strings]
%W[array of strings]

%w<array of strings>
%W<array of strings>

%w@array of strings@
%W$array of strings$

<<FOO
heredoc
FOO

<<-FOO
heredoc
FOO

<<"FOO"
heredoc
FOO

<<-"FOO"
heredoc
FOO

<<'FOO'
heredoc
FOO

<<-'FOO'
heredoc
FOO

`command`

%x(command)

%x{command}

%x[command]

%x<command>

%x$command$

%r(regexp)

%r{regexp}

%r[regexp]

%r<regexp>

%r$regexp$

(/regexp/)


3. Ключевые сова

Цвет - #9966CC, bold
Код
BEGIN
END
alias
begin
break
case
class
def
do
else
elsif
end
ensure
for
if
in
module
next
redo
rescue
retry
return
then
undef
unless
until
when
while
yield
load
require
include


Цвет - #9900CC
Код
and
not
or


Цвет - #0000FF, bold
Код
false
nil
self
super
true


Цвет - #000060
Код
$defout
$deferr
$stderr
$stdin
$stdout
$DEBUG
$FILENAME
$LOAD_PATH
$SAFE
$VERBOSE
__FILE__
__LINE__
ARGF
ARGV
ENV
DATA
FALSE
NIL
RUBY_PLATFORM
RUBY_RELEASE_DATE
RUBY_VERSION
STDERR
STDIN
STDOUT
SCRIPT_LINES__
TOPLEVEL_BINDING
TRUE


Это сообщение отредактировал(а) skalex - 6.10.2006, 17:06
PM   Вверх
Cr@$h
Дата 23.9.2006, 05:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: нет
Всего: 41



Спасибо, skalex, очень неплохо. Хорошо бы ещё указать чувствительность к регистру (нам то всё понятно, но не всем же).

Для разных ключевых слов могут быть разные подсветки. То же касается и строк. За основу можно взять какой-нибудь популярный/официальный редактор/IDE.

Может пригодиться работа в Photoshop для извлечения цвета. Во-первых, не везде можно посмотреть цвет даже в привычном формате RGB, а, во-вторых, так удобнее -- сразу в HEX-формате (16-ричном). Делаем в редакторе/IDE снимок экрана -- Alt+Print Screen. Запускаем Photoshop. File > New > Ok. Вставляем снимок Ctrl+V. Берём пипетку (Eyedropper Tool) и выбираем ею на рисунке нужный цвет. Новый цвет установлен как текущий, щёлкаем по нему дважды. Всё, необходимое поле -- #.
PM MAIL ICQ   Вверх
skalex
Дата 23.9.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 5
Всего: 23



Цитата(Cr@$h @ 23.9.2006,  06:35)
Может пригодиться работа в Photoshop для извлечения цвета. Во-первых, не везде можно посмотреть цвет даже в привычном формате RGB, а, во-вторых, так удобнее -- сразу в HEX-формате (16-ричном). Делаем в редакторе/IDE снимок экрана -- Alt+Print Screen. Запускаем Photoshop. File > New > Ok. Вставляем снимок Ctrl+V. Берём пипетку (Eyedropper Tool) и выбираем ею на рисунке нужный цвет. Новый цвет установлен как текущий, щёлкаем по нему дважды. Всё, необходимое поле -- #.

Cr@$h, есть для этого есть очень простой инстрУмент: pixie.
PM   Вверх
umup
Дата 23.9.2006, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.9.2006

Репутация: 1
Всего: 1



 Можно взять из Programmer's notepad (www.pnotepad.org), в меню /tools/options/schemes есть настройки для параметров и список ключевых слов, а в папке pn/schemes стили в формате xml. Думаю, в других редакторах также существует что-то подобное.
 Конкретно для Руби регистр слов имеет значение.


Это сообщение отредактировал(а) umup - 23.9.2006, 14:09
PM MAIL   Вверх
Cr@$h
Дата 23.9.2006, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: нет
Всего: 41



Цитата(skalex @  23.9.2006,  13:19 Найти цитируемый пост)
Cr@$h, есть для этого есть очень простой инстрУмент: pixie.

Просто не люблю изменять, дело привычки.
Цитата(umup @  23.9.2006,  15:07 Найти цитируемый пост)
Можно взять из Programmer's notepad (www.pnotepad.org), в меню /tools/options/schemes есть настройки для параметров и список ключевых слов, а в папке pn/schemes стили в формате xml. Думаю, в других редакторах также существует что-то подобное.

skalex или umup, действуйте. smile 
Цитата(umup @  23.9.2006,  15:07 Найти цитируемый пост)
Конкретно для Руби регистр слов имеет значение.

Мы знаем, да. Я про то, что, skalex, редактируй регулярно свой пост, наверное пока.
PM MAIL ICQ   Вверх
Cr@$h
Дата 2.10.2006, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: нет
Всего: 41



Почему никто не активничает, неужели не нужная фича...
PM MAIL ICQ   Вверх
skalex
Дата 6.10.2006, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 5
Всего: 23



Я отредактировал свой пост - указал цвета для разных групп.
PM   Вверх
skalex
Дата 6.10.2006, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 5
Всего: 23



Ну а посмотреть можно тут: ruby_highlight_vingrad.

Это сообщение отредактировал(а) skalex - 6.10.2006, 16:47
PM   Вверх
Bikutoru
Дата 6.10.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: нет
Всего: 22



может имеет смысл подсвечивать также attr_reader, attr_writer, attr_accessor? Мне кажется, это лишним не будет. А пример выглядит очень неплохо

Добавлено @ 17:03 
P.S. include забыли...


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
skalex
Дата 6.10.2006, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 5
Всего: 23



Bikutoruinclude добавил. Насчет подсветки дополнительных "слов", я только за. Все обсуждаемо.
PM   Вверх
Cr@$h
Дата 7.10.2006, 05:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: нет
Всего: 41



Здорово, и пример хороший. Правда со строками не всё понятно, мне кажется: text, array of strings, command, regexp должны проверяться на что-то или подсвечиваются в любом случае, чтобы там ни было написано? В примере не подсвечиваются %r</\z>, например. В общем, со строками не совсем ясно.
Цитата(Bikutoru @  6.10.2006,  18:03 Найти цитируемый пост)
может имеет смысл подсвечивать также attr_reader, attr_writer, attr_accessor? Мне кажется, это лишним не будет

Цитата(skalex @  6.10.2006,  18:08 Найти цитируемый пост)
Насчет подсветки дополнительных "слов", я только за. Все обсуждаемо. 

Конечно, и лучше использовать IDE, где подсвечивается по максимуму или наиболее популярную IDE. Тот же http://www.pnotepad.org ...
PM MAIL ICQ   Вверх
skalex
Дата 7.10.2006, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 5
Всего: 23



Cr@$h, в моем примере просто ориентировочный пример, как могла бы выглядеть подстветка синтаксиса Ruby. Реально там все раскрашивается движком geshi. И там нет возможности задавать правила подсветки строк, кроме как кавычек.
PM   Вверх
Cr@$h
Дата 7.10.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: нет
Всего: 41



Ок, пока думай над этим, как лучше подсветить (чем, точнее):
Цитата(Bikutoru @  6.10.2006,  18:03 Найти цитируемый пост)
может имеет смысл подсвечивать также attr_reader, attr_writer, attr_accessor? Мне кажется, это лишним не будет.

Опять же, можно посмотреть, как это сделано в продвинутых средах/редакторах.

В приведённых правилах все символы лексем должны подсвечиваться? Если нет, то подсвечиваемые лучше выделить жирным. Для этого это правило надо будет оформить как цитату, иначе жирные теги не будут действовать.
PM MAIL ICQ   Вверх
skalex
Дата 9.10.2006, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 5
Всего: 23



Cr@$h, вообще хорошо бы знать какими возможностями обладает винградовский движок подсветки ...
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1956 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.