Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Быстрая подсветка готова, Надо потестить 
:(
    Опции темы
Sardar
Дата 7.8.2004, 03:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Пару дней назад переписывался с neutrino о подсветке, я тогда сидел за плотной теорией. Вдруг все заспешили модернизировать форум, ну и я решил побыстрому написать biggrin.gif . Таблицы автомата генерил с помощью утилиты flex.

Это подсветка Java, по идее очень быстрая, 4кб кода за 63мс ИЕ, 120мс Мозилла, Опера - на моей машине. Весит мало <=10кб, но мало расшаренного кода, так что для каждого языка придется тащить 8-10кб таблиц.
Задача повставлять Java код и увидеть Internal error... или "Сообщите модератору..." красными буквами. Все найденные баги постить сюда.
Стили были предуманны в полном бреду в 2:00 ночи, Cheba сделает крассивые. Кто хочет открывает сорцы и пишет свои стили.

Сейчас в подсветке основные ключевые слова, стандартные обьекты и т.п. можно в любой момент добавить.

Тестим: http://files.vingrad.ru/Sardar/JavaParserR.htm smile.gif

Тестовые страницы: http://polygon.septima.com.ua/highlight/test_page.htm - вставляем код, жмем кнопку.
Страница форума: http://files.vingrad.ru/Sardar/highlighter/index.php.htm - просто смотрим и постим сюда результаты.



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Wowa
Дата 7.8.2004, 05:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



Работает, действительно, очень быстро.
PM WWW   Вверх
sergejzr
Дата 7.8.2004, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Теперь надо было бы проверить в "реальных" условиях smile.gif

----------------------------------------------------
вот это не подсветилось совсем sad.gif
Код
A (A other)
{
  field1 = other.getField1();
  field2 = other.getField2();
 ...
}


http://forum.vingrad.ru/index.php?act=ST&f...ndpost&p=193915
---------------------------------------------------------------------------------
Извиняюсь! Там и нечему подсвечиваться smile.gif



Вот на это ушло 2 секунды на ИЕ и 1 секунда на Мозилле.
Код
import java.util.*;
import java.io.*;
import java.text.*;

class Main
{
  static LinkedList list_;
  static final String FILENAME = "angajati.data";

  static void writeFile() {
      try {
          ObjectOutput out = new ObjectOutputStream(
              new FileOutputStream(FILENAME));
          out.writeObject(list_);
      } catch (IOException e) {
          System.out.println(e);
      }
  }

  static void readFile() {
      try {
          ObjectInput input = new ObjectInputStream(
              new FileInputStream(FILENAME));
          Object tmp = input.readObject();
          /*
            if (tmp.getClass().toString() != "LinkedList")
            throw new IOException("Wrong file, dude.");
          */
          list_ = (LinkedList)tmp;
      } catch (IOException e) {
          System.out.println("!!! Caught IO exception !!!");
          System.out.println(e);
      } catch (ClassNotFoundException e) {
          System.out.println("!!! Caught ClassNotFoundException exception !!!");
          System.out.println(e);
      }
  }

  static void menuDisplay() {
      if (list_.size() == 0) {
          System.out.println("Nu sunt angajati -- bankrupt.");
          return;
      }
      ListIterator i = list_.listIterator(0);
      while (i.hasNext()) {
          Angajat a = (Angajat)i.next();
          System.out.println(a. function toString() { [native code] } toString());
      }
  }

  static void menuAdd() {
      try {
          BufferedReader dis = new BufferedReader(
              new InputStreamReader(System.in));
          Angajat a = new Angajat();

          System.out.print("Cod: ");
          a.setCod(dis.readLine());

          System.out.print("Nume: ");
          a.setNume(dis.readLine());

          System.out.print("Salar: ");
          a.setSalar(dis.readLine());

          // System.out.print("Data: ");
          // DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
          // a.setData(df.parse(dis.readLine()));

          System.out.print("Adresa: ");
          a.setAdresa(dis.readLine());

          System.out.print("Telefon: ");
          a.setTelefon(dis.readLine());

          list_.add(a);
          System.out.println("-- angajatul " + a.getNume() + " a fost adaugat");
      } catch (IOException e) {
          System.out.println("!!! IOException !!!");
          System.out.println(e);
      }
  }

  static void menuModify() {
      menuDisplay();
      try {
          BufferedReader dis = new BufferedReader(
              new InputStreamReader(System.in));
          System.out.println("Ce angajat modific? index: ");
          int index = Integer.parseInt(dis.readLine());
          Angajat a = (Angajat)list_.get(index);

          System.out.print("Cod: [" + a.getCod() + "] ");
          String str = dis.readLine();
          if (str.0length() > 0) a.setCod(str);

          System.out.print("Nume: [" + a.getNume() + "] ");
          str = dis.readLine();
          if (str.0length() > 0) a.setNume(str);

          System.out.print("Salar: [" + a.getSalar() + "] ");
          str = dis.readLine();
          if (str.0length() > 0) a.setSalar(str);

          // System.out.print("Data: [" + a.getData() + "] ");
          // DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
          // a.setData(df.parse(dis.readLine()));

          System.out.print("Adresa: [" + a.getAdresa() + "] ");
          str = dis.readLine();
          if (str.0length() > 0) a.setAdresa(str);

          System.out.print("Telefon: [" + a.getTelefon() + "] ");
          str = dis.readLine();
          if (str.0length() > 0) a.setTelefon(str);

          System.out.println("-- dosarul lui " + a.getNume() + " a fost modificat");
      } catch (IOException e) {
          System.out.println("!!! IOException !!!");
          System.out.println(e);
      }
  }

  static void menuSearch() {
      String src;
      try {
          BufferedReader dis = new BufferedReader(
              new InputStreamReader(System.in));
          System.out.println("Ce sir caut? (case sensitive): ");
          src = dis.readLine();
          ListIterator i = list_.listIterator(0);
          while (i.hasNext()) {
              Angajat a = (Angajat)i.next();
              if ( (a.getNume().indexOf(src) != -1) ||
                   (a.getCod().indexOf(src) != -1)) {
                  System.out.println(a);
                  return;
              }
          }
      } catch (IOException e) {
          System.out.println("!!! IOException !!!");
          System.out.println(e);
      }
      if (list_.size() == 0) {
          System.out.println("Nu sunt angajati -- bankrupt.");
          return;
      }
  }

  public static void showMenu() {
      while (true) {
          System.out.println("");
          System.out.println("1. Listeaza");
          System.out.println("2. Adauga");
          System.out.println("3. Modifica");
          System.out.println("4. Cauta");
          System.out.println("q. Iesire");

          try {
              int c = System.in.read();
              System.in.skip(1);

              switch (c) {
                case '1':
                  menuDisplay();
                  break;
                case '2':
                  menuAdd();
                  break;
                case '3':
                  menuModify();
                  break;
                case '4':
                  menuSearch();
                  break;
                case 'q':
                  return;
              }
          } catch (IOException e) {
              System.out.println(e);
          }
      }
  }

  public static void main(String argv[]) {
      readFile();
      showMenu();
      writeFile();
  }
};


Если в коде присутствуют ошибки (я для теста попробовал вставить вместо ява-кода яваскрипт), то время достигает 13 секунд на подсветку кода аналогичной длинны ...

Если хочешь, можно сделать что нибудь вроде http://www.iwi-iuk.org:8081/cgi-bin/vingra...ad.ru/index.php для тестов smile.gif
Для этого необходимо, чтобы твой код разбирался с форматом ХТМЛ (о чём мы уже говорили).
Стили очень понравились smile.gif

Это сообщение отредактировал(а) sergej.z - 7.8.2004, 11:12


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 7.8.2004, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Нашел причину тормознутости ИЕ: у него медленные массивы. Решу использованием строк.
Левый код может быть медленным - тратиться много не нужных переходов, можно ускорить, но тогда таблицы будут гораздо больше. Под вечер перепишу код, вся подсветка стент быстрее.

Заметте что она находит не закрытые коментарии и строки и предупреждает об этом smile.gif

sergej.zp подсветка работает с HTML кодом, правда решил предварительным приведением к тексту, иначе разраслись бы таблицы переходов.
У меня твой код подсветился: ИЕ:203мс, Мозилла:297мс


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
p0s0l
Дата 7.8.2004, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



В опере код sergej.z - за 1,5 с



--------------------
С уважением, г-н Посол.
PM   Вверх
Wowa
Дата 7.8.2004, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



IE: 1,41s
PM WWW   Вверх
Cheba
Дата 7.8.2004, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

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



У меня в Мозилле код от sergej.z подсвечивается за 150-250 мс. 9КБ исходника - примерно 1,200 мс. Да и то из-за его кривости. smile.gif
Добавлено @ 14:21
Sardar, у тебя слова, которые должны быть keywords не подсвечивабтся почему-то. Я работаю с тем скриптом, который ты мне прислал.
PM MAIL ICQ   Вверх
Sardar
Дата 7.8.2004, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Переписал код, теперь юзаю строки а не массивы как таблицы. Мысль была что строка это массив char, а не хешь таблица. Задумка удалась, увеличение скорости в два раза, за то Мозилла присела - падение скорости в 2 раза bored.gif

Cheba возьми скрипт отсюда.

Всем кто тестирует: кидайте всякий мусор, надо получить Internal error, если ошибки не будет, то подсветка готова.

Тестируем с массивами(медленная в ИЕ): http://files.vingrad.ru/Sardar/JavaParserR.htm
Тестируем с строками(медленная в Мозилле): http://files.vingrad.ru/Sardar/JavaParserR2.htm


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Wowa
Дата 7.8.2004, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



У меня скорость в ИЕ осталась почти прежней.
PM WWW   Вверх
Cheba
Дата 7.8.2004, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

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



Так. Я сделал три стиля для Явы. Прикрутил селектор стилля.
Все это и много другое smile.gif можно посмотреть здесь: http://polygon.septima.com.ua/highlight/

Для тех, у кого скорость не сильно большая: Не нужно перезагружать страницу после выбора стиля. Немножко подождит и все будет пучком. smile.gif
PM MAIL ICQ   Вверх
Sardar
Дата 7.8.2004, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Cheba классно сделанно, мне понравился Mello. Зря ты назвал файлы -ie и -moz народ может не понять smile.gif Все скрипты работают во всех браузерах(кроме древних), просто одни работают в некоторых быстрее и то не на всех машинах.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Cheba
Дата 7.8.2004, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

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



Цитата(Sardar @ 7.8.2004, 16:21)
Зря ты назвал файлы -ie и -moz народ может не понять smile.gif Все скрипты работают во всех браузерах(кроме древних), просто одни работают в некоторых быстрее и то не на всех машинах.

Это и подразумевалось. Просто нужно было их как-то различать.

Еслибы скрипт умел еще и имена функций выделять, то было бы вообще красиво. smile.gif

PM MAIL ICQ   Вверх
Wowa
Дата 7.8.2004, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



Теперь надо выяснить какую подстветку внедрять в форум. У нас есть 2 практически законченные подстветки.

PM WWW   Вверх
Sardar
Дата 7.8.2004, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Цитата(Cheba)
Еслибы скрипт умел еще и имена функций выделять, то было бы вообще красиво.

Непроблема, сейчас сделаю. Всем у кого есть пожелания на счет подсветки конкретного языка: сразу договариватесь что нужно smile.gif , что бы потом не править код.
Цитата
Теперь надо выяснить какую подстветку внедрять в форум. У нас есть 2 практически законченные подстветки.

Мне кажется эта самая быстрая и возможно самая навороченная(с теоретической точки зрения еще и самая правильная smile.gif ). Её можно поставить после всех тестов.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Wowa
Дата 7.8.2004, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



Цитата(Sardar @ 7.8.2004, 16:18)
Мне кажется эта самая быстрая и возможно самая навороченная(с теоретической точки зрения еще и самая правильная  ). Её можно поставить после всех тестов.

Интересно ее бы потестить не на отдельной странице, а на странице с форумом и сообщениями.
PM WWW   Вверх
sergejzr
Дата 7.8.2004, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Цитата(Sardar @ 7.8.2004, 16:18)
Мне кажется эта самая быстрая и возможно самая навороченная(с теоретической точки зрения еще и самая правильная smile.gif ). Её можно поставить после всех тестов.


Ну ладно.. smile.gif "самая-самая" smile.gif
Sardar молодец. Я всегда это говорил smile.gif
Надо хоть чего нибудь поставить, а то я жду не дождусь, когда этому конец придёт smile.gif У меня 20 экзамены и по идее времени заниматся этим нет smile.gif, а конца и края вроде как не видно smile.gif
А то уменя уже следующая идея появилась...
Кто знает UltraEdit, тот поймёт. Там очень сложная подсветка очень легко расширяется/меняется/добавляются языки. Если скачаете, то попробуйте PHP подсветить .... красота!

Так вот, я нашёл его движок. Теоретически надо только переписать на Яваскрипт и перескочить ХТМЛ. По своему опыту могу выделить плюспункты этого решения в порядке релевантности:
  • Проверенное/протестованное решение
  • Люди работают над ним, так что апдейты можно делать почти автоматически, даже когда у нас у всех пропадёт желание разрабатывать подсветку
  • Языки опередляются в синтакс-файлах в которых может разобраться даже ребёнок (хотя он должен быть всё таки умным smile.gif)
  • Сложнейшая подсветка ка ПХП внутри ХТМЛ происходит на ура!

Вообще то надо бы всё-таки объективно оценить на тему лёгкости расширения, гибкости итд. Всё таки скорость оказывается не так важна, так как кода на мегабайты на форуме нет smile.gif. А в будующем возможно появятся новые языки и придётся расширять...
Кстати мой вариант расширять ессно не проблема..

Sardar, у тебя время не правильно меряется. Попробуй выдавать так же начальное/конечное время, что бы можно было сверить.

PS:
Всё! у меня выходные озеро ждётsmile.gif!





--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 7.8.2004, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



sergej.z а где ссылки на это чудо? smile.gif
Таблицы этой подсветки генерятся flex'ом(см. на gnu.org). Так что имея файл описания флекса можно создать подсветку.
Если названный движок генерит C код, то его не сложно перенести в JS.
Цитата
Sardar, у тебя время не правильно меряется. Попробуй выдавать так же начальное/конечное время, что бы можно было сверить.

Уже заметил smile.gif


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Sardar
Дата 9.8.2004, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Всем: давайте начнем активно тестить код или ставим что есть.

Что нового:
  • реализованно сжатие таблиц, в результате уменьшение размеров таблиц почти в двое
  • добавленна лексема для Java: функция
  • код разделен на расшаренныю часть: highlighter_core.js и модули: lang_(name).js, lang_(name).css
  • правильно отмеряется время работы скрипта
Тестовые страницы: http://polygon.septima.com.ua/highlight/test_page.htm - вставляем код, жмем кнопку.
Страница форума: http://files.vingrad.ru/Sardar/highlighter/index.php.htm - просто смотрим и постим сюда результаты.

sergej.z прикрути код к своему вьюверу. Классно он у тебя получился smile.gif


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Wowa
Дата 9.8.2004, 02:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



Цитата(Sardar @ 9.8.2004, 01:16)
sergej.z прикрути код к своему вьюверу. Классно он у тебя получился

только не вместо, а параллельно smile.gif Надо выявить какой код лучше работает и тот ставить. Судя по всему два кода примерно одинаковые по характеристикам?
PM WWW   Вверх
Sardar
Дата 9.8.2004, 02:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Все подсветки до кучи:
1) код написанный neutrino - заточен под язык - вроде от него отказались
2) [K]Syntax - код написан Cheba - заточен под язык - вороде от него тоже отказались
3) SHighlighter - мой код, не заточен под конректыные языки но есть глупости - от него отказываемся
4) код написанный sergej.z - сейчас стоит в его вьювере, очень быстрый, "не ярко разукрашен"
5) мой последний код - быстрый, широкие возможности в раскраске.

Последние два можно реально использовать, но характеристики у скриптов разные: мой менленнее(на микросекунды?), но более яркий smile.gif, код sergej.z - быстрее, но раскрашивает на смом базовом уровне.

Возможно мы будем использовать еще третий вариант на движке UltraEdit'a если сумеемего перенести smile.gif


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Wowa
Дата 9.8.2004, 02:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



Цитата(Sardar @ 9.8.2004, 01:51)
5) мой последний код - быстрый, широкие возможности в раскраске.

широкие возможности в раскраске за счет того, что алгоритм умный?

У какого кода база слов для раскраски весит меньше? у 4 или 5 ?
PM WWW   Вверх
Cheba
Дата 9.8.2004, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

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



Цитата(Sardar @ 9.8.2004, 02:16)
Страница форума: http://files.vingrad.ru/Sardar/highlighter/index.php.htm - просто смотрим и постим сюда результаты.

Маленькая поправочка.
http://polygon.septima.com.ua/highlight/vingrad.htm
PM MAIL ICQ   Вверх
Sardar
Дата 9.8.2004, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Цитата(Admin @ 9.8.2004, 01:55)
широкие возможности в раскраске за счет того, что алгоритм умный?

Да, по сути я режу текст на лексемы и обрамляю их в теги <span>. Лексемы могут быть самыми разными, какие есть в языке.
Например для Java только добавил новую лексему: функция.

Подсветка весит: highliter_core.js(4.5kb) - расшаренный код, lang_java.js(7kb) - модуль с данными языка Java.

Cheba по твоей ссылке подсветка не запускается.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Cheba
Дата 9.8.2004, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

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



Цитата(Sardar @ 9.8.2004, 11:50)
Cheba по твоей ссылке подсветка не запускается.
Пофиксил.
PM MAIL ICQ   Вверх
sergejzr
Дата 10.8.2004, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Привет!

Вот подогнал для viewer:
http://www.iwi-iuk.org:8081/cgi-bin/vingra...showtopic=27306

Не могу понять, почему там стиль немного отличается от вашего, ведь это по идее копия smile.gif.
Возможно, что я не нашёл всех изменений. Посмотрите на досуге smile.gif Как скажите, чего не хватает, пофиксю smile.gif

Всё же, по моему следовало бы использовать интерфейс отсюда:
http://www.iwi-iuk.org:8081/cgi-bin/vingrad/test3.php3
Посмотрите, как там сгенерирован ХТМЛ. Остаётся только написать функцию highlight(ID,lang);
Да и к тому же помере загрузки всё же лучше подсвечивать ИМХО.

Так же предлагаю этот интерфейс на рассмотрение. Его уже можно было бы встроить независимо от конкретной имплементации подсветки.

Елси раньше Хтмл был примерно такой
Код
....
<td id="CODE"><!--ec1--> public class X; </>

То теперь следовал бы:
Код
<td id="CODE"><!--ec1--> <code id='java0' name='java'> public class X;</code> <script language='javascript' type='text/javascript'>highlightSyntax('java0','java');</script>

Где java0-однозначное ID, а java - название языка.
Так же предлагаю сокращения для других языков:

cpp
delphi
vb
csharp
asm
perl
php
asp
java
javascript
sql

Осталось заиклюдить файл подсветки. ВСЁ! smile.gif

ПС:
Ребята, а что с оперой творится?

ППС:
А, понял там тэги заглавными буквами т.е <BR/>

Это сообщение отредактировал(а) sergej.z - 11.8.2004, 00:11


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
mr.DUDA
Дата 20.8.2004, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата
Ребята, а что с оперой творится?

во-во smile.gif


--------------------
user posted image
PM MAIL WWW   Вверх
Sardar
Дата 21.8.2004, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Цитата(sergej @ 10.8.2004, 21:00)
Не могу понять, почему там стиль немного отличается от вашего, ведь это по идее копия smile.gif.

Надо переопределить #CODE, там должен быть код из #outp.
Я еще в ближайшие 4 дня не смогу делать подсветку, ездил на море, гости, шашлык smile.gif
После быстро наверстаю время.

sergej.z большие спасибы за вытягивание этой подсветки, от всей души плюс smile.gif


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 22.8.2004, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Цитата(Sardar @ 21.8.2004, 13:36)
Надо переопределить #CODE, там должен быть код из #outp

Глянь smile.gif вроде так smile.gif


Цитата(Sardar @ 21.8.2004, 13:36)
большие спасибы за вытягивание этой подсветки

Тебе спасибо smile.gif. Мы всё таки в одном Team'е работаем smile.gif.

ПС:
А вот у меня не получается больше плюсы ставить.. Не знаю почему .. sad.gif

ОФФТОП:
Цитата(Sardar @ 21.8.2004, 13:36)
ездил на море, гости, шашлык

Как у вас там море? А погода? Мы тоже хотели в ваши края заскочить. А то у нас море холодное и ветер... (Хотя в принципе море у нас одно biggrin.gif )




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Обсуждение форума | Следующая тема »


 




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


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

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