Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Тест подсветки синтаксиса


Автор: Domestic Cat 1.9.2004, 17:00
сабж
Код

abstract
boolean
break
byte
class
case
catch
char
const
continue
default
do
double
else
extends
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
package
private
public
protected
return
transient
short
static
super
this
switch
synchronized
throw
throws
try
void
volatile
while
byvalue
cast
future
generic
inner
outer
rest
var
strictfp
true
false
null
operator
assert

Автор: Domestic Cat 1.9.2004, 22:49
Хорошо бы услышать мнение по поводу предлагаемой мной посветки,
см тут : http://forum.vingrad.ru/index.php?act=ST&f=54&t=28879&st=15#entry208613

{ import, package } // imports, crimson

{ throws, throw, catch, try, finally, assert } // exceptions, red

{ transient, volatile, native, static, strictfp, final, abstract, default, public, protected, private} // modifiers, darkblue

{ class, interface, void, boolean, short, int, float, double, byte, char, long, super, this, instanceof, new} // types, blue

{while, do, for, if, else, switch, return, case, break, continue} // control flow, blue

{false, true, null} // purple

{extends, implements} // inheritance, blue

{synchronized} // threads, red

{byvalue, cast, future, generic, const, rest, var, goto, outer, inner, operator} // other, royalblue

String literal: "This is string literal" , green

Numbers: 32 + 17 - 27 = 22 , red

Comments: // This is comment teal

Автор: DarkDS 1.9.2004, 23:28
А не слишком ли сложная подсветка?

Автор: Domestic Cat 1.9.2004, 23:35
Цитата(DarkDS @ 1.9.2004, 14:28)
А не слишком ли сложная подсветка?


Оттенки 2х цветов - синего и красного (кроме зеленых стрингов). Но вообще да, подправлю сейчас.

Автор: Sardar 1.9.2004, 23:36
Красиво, движек не напрягает, без разницы как слово предтавить, в смысле все слова подходят под одну лексему: идентификатор, а дальше в хештаблицу глянуть за стилем

Автор: Domestic Cat 1.9.2004, 23:40
Ну а сейчас как?

Автор: DarkDS 1.9.2004, 23:44
Лудше. Намного лудше. Единственный перебор по моему - числа. Их лудше черными оставить smile.gif

Автор: Domestic Cat 1.9.2004, 23:46
Цитата(DarkDS @ 1.9.2004, 14:44)
Лудше. Намного лудше. Единственный перебор по моему - числа. Их лудше черными оставить


O ! Самый раз. Может, все малоиспользуемые в rojalblue перекрасить (rest, goto, ...)

Автор: DarkDS 2.9.2004, 00:13
Да в общем то перекрашивать их не нужно. Так как если перекрасить, то чутка запутывать будут smile.gif

Автор: Domestic Cat 2.9.2004, 00:43
Ну все равно никто ими не пользуется. А так будут выделяться.
Нада будет вопрос про rest и var в "Маленький тест" сунуть smile.gif

Автор: Domestic Cat 2.9.2004, 01:09
test:
Код

/**
    * Saves given record in database file if it has no owner and date
    * to which the record relates is valid. <code>String</code> array record is
    * record to be saved, except of the last element which is
    * the number of record.
    * Method uses fillowing schema:
    * <ol>
    * <li>Lock record.</li>
    * <li>Check owner, if room has been sold, throw <code>AccessDeniedException</code></li>
    * <li>Unlock record</li></ol>
    *
    * @param   record <code>String</code> array containing data and record number
    * @throws  AccessDeniedException thrown if client tries to book room
    *          which has been booked already, or record date is not valid
    * @throws  RecordNotFoundException thrown if such record does not exist
    * @throws  RemoteException thrown if RMI fails
    */
   public void setRecord(String[] record) throws   AccessDeniedException,
                                                   RecordNotFoundException,
                                                   RemoteException
   {
       // Last element of record array is record ID, see comments in constructor
       int actualLength = record.length - 1;
       int recordNumber = Integer.parseInt(record[actualLength], 10);
       String[] rec = new String[actualLength];
       System.arraycopy(record, 0, rec, 0, actualLength);    
       
       /*
        * Check time limit. CSR cannot book rooms with date in the past;
        * and may book room if recordDate - today < timeLimit
        * (2 days, in original variant).
        */
       String stringRecordDate = rec[rec.length - 2];
       GregorianCalendar recordDate = new GregorianCalendar();
       StringTokenizer st = new StringTokenizer(stringRecordDate, "/");
       int year = Integer.parseInt(st.nextToken(), 10);
       int month = Integer.parseInt(st.nextToken(), 10);
       int day = Integer.parseInt(st.nextToken(), 10);
       recordDate.set(year, month - 1, day, 12, 0, 0); // Noon
       GregorianCalendar today = new GregorianCalendar();
       
       if (today.after(recordDate))
       {
           throw new AccessDeniedException("Time limit");
       }
       
       // Check time limit for future
       if (timeLimit != Start.NO_TIME_LIMIT)
       {
           GregorianCalendar dateToCompare;
           dateToCompare = new GregorianCalendar();
           dateToCompare.add(Calendar.DATE, timeLimit);
           if (!dateToCompare.after(recordDate))  
           {
               throw new AccessDeniedException("Time limit");
           }      
       }
       
       /*
        * Although the owner field was checked by client, we have to
        * check it again, in the case if somebody have already booked this room.
        * Notice: Clients database (what CSR sees in JTable) is updated
        * each time it books room or performs search.
        */
       boolean flag = false;
       manager.lock(recordNumber); // Locking record
       String[] temp = (String[]) database.elementAt(recordNumber);
       if (!temp[temp.length - 2].trim().equals(""))
       {
           flag = true;
       }
       else
       {
           data.update(recordNumber, rec);
           database.set(recordNumber, record);
       }
       manager.unlock(recordNumber); // Unlocking record
       if (flag)
       {
           // Must not throw Exception before unlock
           throw new AccessDeniedException("Room has been booked already");
       }
   } // End of setRecord



Автор: Zandr 2.9.2004, 06:42
Млин, а что с отступами? Они пропадают или их не было?

Автор: sergejzr 2.9.2004, 12:06
Цитата(Zandr @ 2.9.2004, 05:42)
Млин, а что с отступами? Они пропадают или их не было?

Что с ними? Конкретнее плиз smile.gif И какой у тебя броузер?
По моему сотступами всё ОК.
Подсветка даже восстанавливает табулятор smile.gif

Автор: Zandr 2.9.2004, 13:02
Дык эта, Opera 7.23j
Добавлено @ 13:08
А в IE 5.00 (W2k Pro Ru SP4), конкретно на этой странице:
Строка 210 - ошибка - Объект не поддерживает это свойство или метод
далее
Строка 259 - ошибка - this.endOfLineComment.0.0 - не является объектом
С отступами все OK, но цветов нет вообще...

Знаю - броузеры староваты... А менять-то как не охота... smile.gif

Автор: sergejzr 2.9.2004, 15:28
Цитата(Zandr @ 2.9.2004, 12:02)
Дык эта, Opera 7.23j

Да, старая Опера действительно не сдвигает sad.gif к сож. ничего поделать нельзя, так как глюк в опере, а не в скрипте... Скрипт получает уже ХТМЛ без пробелов....

Сейчас опера 7.5 по моему... Там уже всё намного лучше smile.gif

Цитата(Zandr @ 2.9.2004, 12:02)
А в IE 5.00 (W2k Pro Ru SP4), конкретно на этой странице:....


Где ж мне эксплорер такой взять? smile.gif Ни чего обещать не могу, но постараюсь конечно посмотреть...

Дело в том, что чем старее броузеры которые поддерживаются, тем запутаннее и сложнее (медленнее) код.. Поэтому например нетскейп 4 отпадает... А по идее скрипт предусмотрен так, что бы на не поддерживающих броузерах код вообще не подсвечивался и оставался как раньше...



Автор: Wowa 2.9.2004, 15:39
Цитата(sergej @ 2.9.2004, 14:28)
А по идее скрипт предусмотрен так, что бы на не поддерживающих броузерах код вообще не подсвечивался и оставался как раньше...

ну да, это было бы идеальным вариантом. На нетскейп4 ориентироваться не стоит, но ИЕ 5 стоит почти везде, где виндовс 98( а это еще часто встретить можно) - тут я думаю надо код не изменять просто, но при этом избежать ошибок ява-скрипта хорошо бы.

Автор: sergejzr 2.9.2004, 15:45
Мне просто немного странно, что именно в этом месте, потому что если он уже "дотуда" дошёл, то смог бы и подсветить.... Ка насчёт выходных? Будет возможность проверить на пятёрке....

Автор: sergejzr 2.9.2004, 19:03
Zandr, Проверь пожалуйста через
http://www.iwi-iuk.org:8081/cgi-bin/vingrad/test2.php3?oldurl=http://forum.vingrad.ru/index.php?showtopic=28927.

А так же приглашаются все, у кого ИЕ5 или какой нибудь другой броузер не поддерживающий подсветку smile.gif

Автор: Domestic Cat 2.9.2004, 23:38
Код

#include


А почему на Java форуме подсвечивается adv/63.gif С++ adv/hair.gif smile.gif smile.gif

Автор: sergejzr 3.9.2004, 00:12
biggrin.gif Это я где то увидел, что # директивы на яве biggrin.gif Ну засунул туда тоже smile.gif
Но теперь ты сам можешь разобраться smile.gif

Автор: Domestic Cat 3.9.2004, 00:58
Убрал smile.gif

Посмотреть как все это будет выглядеть можно здесь:
http://www.iwi-iuk.org:8081/cgi-bin/vingrad/index.php3?oldurl=http://forum.vingrad.ru/index.php?showtopic=28927&st=0

Вопрос к обитателям форума: нужна ли подсветка +, -, &, . , { }, и пр? Может вообще не нужна?
Или одним цветом сделать?


Автор: sergejzr 3.9.2004, 01:07
Цитата(Domestic @ 2.9.2004, 23:58)
Посмотреть как все это будет выглядеть можно здесь: http://www.iwi-iuk.org:8081/cgi-bin/vingra...opic=28927&st=0


Классно! Неброско, но достаточно ярко. Супер! Насчёт знаков не знаю. Вроде если уберёшь маловато будет. Но это только ИМХО. Жираная точка теперь конечно совсем не смотрится smile.gif.

Автор: Domestic Cat 3.9.2004, 01:16
Цитата(sergej @ 2.9.2004, 16:07)
Классно! Неброско, но достаточно ярко. Супер!


Спасибо smile.gif Прямо дизайнером себя чуствую
adv/sun.gif

Автор: Zandr 3.9.2004, 06:57
sergej.z
Через там проверил - отступы - ОК, цвета - ОК smile.gif Ошибок нет.

Автор: Alone 3.9.2004, 09:50
Насчет цветов: Сколько людей, столько и мнений будет. Но однозначно идея хороша. Поддерживаю. Все замечательно. Хотя глаз режет, так как в нетбинсе по дефолту другая расцветка... Но просить чего то менять не буду. smile.gif

Насчет браузера: На данный момент, как это ни удивительно единственный браузер, который соответствует стандартам HTML4.X & CSS2 это Mozilla. IE6 отдыхает.
По поводу всех остальных (a-la Netscape, Opera, FireFox, etc) скажу, что они построены на мозилловском движке и являются ни чем иным как (модератор, сорри) кастрированной Мозиллой.
Выводы для себя сделает каждый сам...

PS: От себя могу предложить кроме посветки выделение полужирным шрифтом ключевые слова и вызовы методов()

Автор: sergejzr 3.9.2004, 11:33
Цитата(Zandr @ 3.9.2004, 05:57)
sergej.z Через там проверил - отступы - ОК, цвета - ОК Ошибок нет.

Замечательно smile.gif Правда не знаю, когда ошибки будут исправлены в главном скрипте smile.gif

Цитата(Alone @ 3.9.2004, 08:50)
Хотя глаз режет, так как в нетбинсе по дефолту другая расцветка

Предлагай Domestic Cat'у свои варианты smile.gif. Мне кажется он уже супер вариант предложил

Цитата(Domestic @ 2.9.2004, 23:58)
Посмотреть как все это будет выглядеть можно здесь: http://www.iwi-iuk.org:8081/cgi-bin/vingrad/index.php3?oldurl=http://forum.vingrad.ru/index.php?showtopic=28927&st=00


Автор: Domestic Cat 3.9.2004, 15:23
Цитата(Alone @ 3.9.2004, 00:50)
PS: От себя могу предложить кроме посветки выделение полужирным шрифтом ключевые слова и вызовы методов()


Ну смотри:

http://www.iwi-iuk.org:8081/cgi-bin/vingrad/index.php3?oldurl=http://forum.vingrad.ru/index.php?showtopic=28927&st=0

Если возражений нет, то можно пока на этом остановиться.

Автор: Domestic Cat 3.9.2004, 22:43
Продолжение см. здесь:

http://forum.vingrad.ru/index.php?showtopic=29049

Автор: tipoc 3.9.2004, 23:11
Самый оптимальный вариант - сделать подсветку,как в IntelliJ IDEA(там чуваки над этим нехило поработали).

Автор: Domestic Cat 3.9.2004, 23:19
Например? smile.gif
Добавлено @ 23:19
Кстати, лучше перейти в верхний топик.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)