Skocz do zawartości


Zdjęcie

Simple Syntax Highlighter


  • Zaloguj się, aby dodać odpowiedź
34 odpowiedzi w tym temacie

#1 Arthemis

Arthemis

    Rozgrzewam się

  • Wtyczkopisarz
  • 53 postów

Napisano 2009.12.22, 08:30

Simple Syntax Highlighter 0.1.5.3


Dołączona grafika


Data wysłania: 24.10.2012
Data aktualizacji: 24.10.2012

Wtyczka przeznaczona dla osób, które przesyłają fragmenty kodu źródłowego via AQQ.
Jeśli ktoś zainteresowany jest stworzeniem podświetlania dla jakiegoś języka może zajrzeć do katalogu [user]\Plugins\SSynHi\languages i przejrzeć znajdujące się tam pliki. Do stworzenia podświetlania wystarczy jako taka znajomość wyrażeń regularnych (regular expressions / regexp), gdyż cały system bazuje właśnie na nich.

Sposób wywołania kolorowania składni
1. [code _nazwa_jezyka_]_przesyłany_kod_[/code]
2. zawartość, którą chcemy przesłać skopiować do schowka, następnie wybrać składnię w jakim z menu kontekstowego pola rozmowy.

Jako nazwę języka podajemy nazwę pliku z katalogu [user]\plugins\SSynHi\languages. Jeśli dany plik nie zostanie znaleziony (np. wpiszemy błędną nazwę) to wtyczka przetworzy kod bez kolorowania składni, jednak doda numerację linii.

Uwaga! Aby wtyczka działała w pełni prawidłowo należy wyłączyć wyświetlanie emotikon. Niestety AQQ nie pozwala na wyłączenie jakiegoś fragmentu kodu z przetwarzania, co może spowodować przetworzenie fragmentu kodu na emotikonę. Jeśli ktoś ma pomysł jak można to rozwiązać będę wdzięczny za podzielenie się nim Dołączona grafika

Lista aktualnie obsługiwanych języków:
Spoiler



Zmiany w Simple Syntax Highlighter 0.1.5.3
  • Wiadomości nie są już kodowane przed wysłaniem aby nie były blokowane przez filtr AQQ (sic!).

Pobierz plikLista zmian

Użytkownik Arthemis edytował ten post 2012.10.24, 21:35


#2 Senega

Senega

    Początkujący

  • Wtyczkopisarz
  • 1401 postów

Napisano 2009.12.22, 09:35

Witam! Pomysł na wtyczkę jest świetny ale mam z nią jakieś problemy. Wstawiam
[syntax_delphi]const value : integer; [/syntax]
a otrzymuję
>> Language : DELPHI / PASCAL    
0001?<img src='http://forum.aqq.eu/public/style_emoticons/<#EMO_DIR#>/question.gif' class='bbc_emoticon' alt='??' />?<img src='http://forum.aqq.eu/public/style_emoticons/<#EMO_DIR#>/question.gif' class='bbc_emoticon' alt='??' />?

Coś jakby był problem z kodowaniem utf-8.
A emotki mam wyłączone.

@Edit
Jeszcze jedno. Wtyczka ma możliwość wywołania ustawień, które nie są wywoływane. Nie wiem czy to jest błąd czy tylko nieuwaga. Jeśli wtyczka nie ma ustawień to nie powinno być możliwości ich wywoływania (Ustawienia AQQ/Wtyczki/Przycisk ustawiania wtyczki).

Android - program telewizyjny Kropka TV http://goo.gl/AZyEE

Aktualnie bez AQQ - co na dobre mi wychodzi :tuptup:


#3 rysi3k

rysi3k

    Adept

  • Wtyczkopisarz
  • 379 postów

Napisano 2009.12.22, 10:34

U mnie podobnie, otrzymuję:
>> Language : ANSI C
0001 <img src='http://forum.aqq.eu/public/style_emoticons/<#EMO_DIR#>/question.gif' class='bbc_emoticon' alt='??' />?<img src='http://forum.aqq.eu/public/style_emoticons/<#EMO_DIR#>/question.gif' class='bbc_emoticon' alt='??' />?t
a wpisałem:
[syntax_c] void hello_world() {
cout << "testuje hello world! Wtyczka do AQQ do kolorowania skladni <img src='http://forum.aqq.eu/public/style_emoticons/<#EMO_DIR#>/biggrin.gif' class='bbc_emoticon' alt=':D' /> ";
}[/syntax]


Darmo-Darmo.pl - mnóstwo rzeczy za darmo! Spolszczenia.com.pl - Największa baza spolszczeń! XLTeam.pl - XLTeam::Our World


AQQ zawsze najnowszy build @ Windows 7 + IE8, wtyczki: Standardowe + inne :P

#4 Arthemis

Arthemis

    Rozgrzewam się

  • Wtyczkopisarz
  • 53 postów

Napisano 2009.12.22, 14:21

Prawidłowa składnia:

[syntax delphi]void hello_world() {
cout << "testuje hello world! Wtyczka do AQQ do kolorowania skladni :D ";
}[/syntax]


Przy otwieraniu taga pomiędzy słówkiem "syntax" a nazwą języka musi być spacja. To pole (spacja) jest później używane przez wtyczkę celem opisania metody kodowania przesyłanego tekstu.

#5 Senega

Senega

    Początkujący

  • Wtyczkopisarz
  • 1401 postów

Napisano 2009.12.22, 14:32

No cóż, przykład był źle podany :D. Faktycznie ze spacją działa poprawnie. Tak na prawdę to przydałaby się możliwość samodzielnego definiowania skrótów tzn. nie chce mi się pisać "syntax delphi" tylko samo "delphi" (wszystko w nawiasach kwadratowych) i aby Twój plugin sam zamieniał to na odpowiedni ciąg czyli "delphi" -> "syntax delphi". Zakończenie "/delphi"

Brak języka java.

Android - program telewizyjny Kropka TV http://goo.gl/AZyEE

Aktualnie bez AQQ - co na dobre mi wychodzi :tuptup:


#6 Arthemis

Arthemis

    Rozgrzewam się

  • Wtyczkopisarz
  • 53 postów

Napisano 2009.12.22, 14:45

Teoretycznie moznaby tak zrobic - problem w tym, że wtedy wtyczka musiałaby sprawdzać każde słowo, które jest w nawiasach kwadratowych. Tak mamy "magic word" syntax.
Może w przyszłości dodam element toolbara gdzie będzie można wybrać język z listy i tagi będą wklejane do okna pisania (coś w stylu bb-code na forum).

JAVA będzie wkrótce;)

#7 Wareczek

Wareczek

    Adept

  • Administrator
  • 1262 postów

Napisano 2009.12.22, 16:18

Wtyczka nie ma ustawień, a mimo to przycisk jest aktywny.

sh.jpg


P.S. Może projekt na Bugliście? Zapraszam na AQQ lub PW :)

#8 Arthemis

Arthemis

    Rozgrzewam się

  • Wtyczkopisarz
  • 53 postów

Napisano 2009.12.22, 16:42

Mój błąd - zostawiłem funkcję, a formatka ustawień jeszcze nie jest dokończona. Na szczęście nie ma to wpływu na działanie wtyczki ;)

#9 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5030 postów

Napisano 2009.12.22, 18:16

A dało by się dodać ustawienia takie jak we wtyczce SyntaxHighlighter Evolved do Wordpress? :)

#10 Lord ByRad

Lord ByRad

    Expert

  • Użytkownik
  • 985 postów

Napisano 2009.12.22, 18:24

Ale mimo wszystko przydałaby się możliwość dostosowania nazw języków (na przykład na formatce z ustawieniami żeby owo "delphi / pascal" można było zastąpić zwykłym "delphi", a jak ktoś często wysyła kod w pascalu, to nawet "d"). Wystarczyła by najzwyklejsza możliwość dodawania aliasów dla nazw języków (oczywiście przydało by się od razu blokować możliwość ustawienia aliasu "c" dla języka"delphi / pascal" i nazwy tych plików powinny być przeszukiwane w pierwszej kolejności (przed aliasami), aby uniknąć sytuacji kiedy ktoś najpierw doda alias "java", a potem dorzuci plik o takiej właśnie nazwie).

No ale generalnie to wtyczka zapowiada się wręcz wspaniale (trochę szkoda, że nie udało się wyłączyć wyświetlania tych emotek, no ale cóż... myślę, że można to zgłosić na buglistę (jako błąd w samym AQQ oczywiście ;) ) ). Zaraz zabieram się do testowania :)

Właśnie przyszło mi do głowy jeszcze jedna myśl ... Przydała by się możliwość połączenie kilku języków w jednym wysyłanym fragmencie (na przykład dla HTML + CSS + JS).

<OWN EDIT>
Przydała by się jeszcze możliwość wywalenia zbędnych zer z przodu przy numeracji wierszy (najlepiej jako opcja), ułatwiło by to nieco wyszukanie powiedzmy setnego wiersza w dłuższym kodzie - właśnie przed chwilką szukałem 103 i trochę te zera przeszkadzają ;/

Użytkownik Lord ByRad edytował ten post 2009.12.22, 18:55

279.gif


#11 Arthemis

Arthemis

    Rozgrzewam się

  • Wtyczkopisarz
  • 53 postów

Napisano 2009.12.22, 19:08

@Beherit >> muszę omerać wtyczkę nim będę w stanie powiedzieć czy da radę zrobić ;) Mógłbyć ewentualnie konkretniej opisać o jakie dokładnie ustawienia chodzi (tu lub na xmpp).

@Lord ByRad >> Jeśli chodzi o aliasy może zostanie to wykonane w przyszłości - w zasadzie nie byłoby to trudne (ale magic word "syntax") i tak zostanie.
Aby wywołać formatowanie składni delphi wystarczy napisać [syntax delphi] - nie trzeba pisać "delphi / pascal". "Delphi / Pascal" to nazwa opisowa języka, która pobierana jest z pliku opisującego formatowanie składni.

Co do łączenia kilku typów formatowania w jednym wysyłanym pliku to może być problem. Aktualnie jako koniec wysyłanego kodu traktowany jest ostatnie wystąpienie "[/syntax]". << Niestety musi zostać wyszukiwanie ostatniego wystąpienia na wypadek gdyby w samym kodzie znalazła się ta sama fraza - w takim wypadku posypałoby się formatowanie.
Pomyślę o ewnetualnym wykrywaniu zagnieżdżonego wyboru języka ale problemem może być właśnie powyższy przykład z wystąpieniem danej frazy w wysyłanym fragmencie nie tylko jako oznaczenie języka ale również jako element string'a chociażby.

Wybór między zerami i spacjami przy numeracji wierszy będzie w opcjach ;)

Edited by Arthemis
Co do emotek wyraziłem się nie dość jasno. Problem może wystąpić jedynie jeśli kod przesyła nam osoba, która nie posiada wtyczki.
Jeśli kod zostanie przesłany przez osobę, która również ma zainstalowaną wtyczkę to przed wysłaniem treści kodu jest on kodowany za pomocą base64 dzięki czemu ryzyko wystąpienia emotki jest żadne (bądź bliskie 0).

Użytkownik Arthemis edytował ten post 2009.12.22, 19:20


#12 Senega

Senega

    Początkujący

  • Wtyczkopisarz
  • 1401 postów

Napisano 2009.12.23, 08:54

Beheritowi chodzi o możliwość np. wyłączenia numeracji, zmiana kolorowania. Wiadomo, zmiana kolorowania będzie miała wpływ tylko w naszym AQQ.
Czy planujesz dodać opcję do menu pod prawym klawiszem w oknie wpisywania wiadomości? Coś jak :
wyślij zawartość schowka jako kod
+ delphi
+ c
+ java
Wybranie którejś z opcji powodowałoby wklejenie tekstu ze schowka z automatycznym obtagowaniem. Same języki, które by się wyświetlały wskazywałby użytkownik (po co komu możliwość wysyłania np. w javie jak nie używa na co dzień tego języka programowania).

Android - program telewizyjny Kropka TV http://goo.gl/AZyEE

Aktualnie bez AQQ - co na dobre mi wychodzi :tuptup:


#13 Arthemis

Arthemis

    Rozgrzewam się

  • Wtyczkopisarz
  • 53 postów

Napisano 2009.12.23, 16:02

Wyłączenie i zmiana sposobu wyświetlania numeracji będą w opcjach.

Zmiana kolorowania składni możliwa jest poprzez zmianę plików .stx (są to zwykłe pliki tekstowe) z katalogu [aqq_user]\Plugins\SSynHi\languages. W plikach tych znajduje się grupa [MAIN_FORMAT], która odpowiada właśnie za sposób kolorowania składni.

Zamiast menu pod PPM raczej pojawi się przycisk w toolbarze okna wysyłania wiadomości - o ile pamiętam nie można było w menu kontekstowym stworzyć submenu, więc jeśli jakiś użytkownik wybrałby sobie większą ilość języków do wyboru to miałby mały chaos we wspomnianym menu kontekstowym.

#14 Lord ByRad

Lord ByRad

    Expert

  • Użytkownik
  • 985 postów

Napisano 2009.12.23, 16:39

@Arthemis: gdyby te języki były posortowane alfabetycznie w submenu "Simple Syntax Highlighter", to myślę, że nie wprowadzałoby to jakiegoś bałaganu ... Od razu można by tam wstawić na samej górze odsyłacz do ustawień programu - tak żeby był pod ręką.

279.gif


#15 Arthemis

Arthemis

    Rozgrzewam się

  • Wtyczkopisarz
  • 53 postów

Napisano 2009.12.25, 03:13

@Lord ByRad << problem w tym, że o ile dobrze pamiętam nie ma sposobu na dodanie subemnu do menu kontekstowego AQQ.


Do ściągnięcia wersja 0.1.2.1
Wprowadzono
  • Okno ustawień
    • wyświetlanie numeracji linii
    • sposób przetwarzania znaku tabluacji
  • Kolorowanie składni kolejnych języków
    • JAVA

// Edycja 2009.12.25 ----------------------------------
Do ściągnięcia wersja 0.1.3.1
Wprowadzono
  • Możliwość wyboru języka z menu kontekstowego okna romzowy AQQ.
  • Kolorowanie składni kolejnych języków
  • C++
  • CSS
  • INI
  • PHP

Użytkownik Arthemis edytował ten post 2009.12.25, 03:14


#16 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5030 postów

Napisano 2009.12.25, 10:46

Mam takie pytanie. Czemu paczkę z językami trzeba ściągać osobno? Poza tym przy instalacji tej paczki wywala błąd braku pliku CC3290.dll przez co nie można tego zainstalować :blink: Na ma związek z tą dll'ką w paczce pewnie...

#17 Arthemis

Arthemis

    Rozgrzewam się

  • Wtyczkopisarz
  • 53 postów

Napisano 2009.12.26, 14:37

Owszem ma (miało) związek.
Póki co z osobnego instalatora języków rezygnuję (trzeba dopracować).
Aktualnie wszystkie języki znajdują się w paczce instalacyjnej wtyczki. (link w pierwszym poście aktualizowany)

Do ściągnięcia wersja 0.1.4.1
Usunięto błędy
  • Złe miejsce wstawiania kodu
  • Usuwanie linii kodu przy niedomkniętym tagu
  • Czyszczenie pola wysyłania wiadomości przy wstawianiu tagu z menu kontekstowego.


#18 Lord ByRad

Lord ByRad

    Expert

  • Użytkownik
  • 985 postów

Napisano 2009.12.26, 17:51

Przydałaby się jeszcze możliwość aktualizacji za pomocą wtyczki FixUpdate ...

279.gif


#19 Senega

Senega

    Początkujący

  • Wtyczkopisarz
  • 1401 postów

Napisano 2009.12.28, 09:25

Czy zamiast "syntax" nie może być "code" (chodzi o początek i koniec wpisywania kodu)? Człowiek już się trochę przyzwyczaił do takiej formy wpisywania kodu.

Android - program telewizyjny Kropka TV http://goo.gl/AZyEE

Aktualnie bez AQQ - co na dobre mi wychodzi :tuptup:


#20 Lord ByRad

Lord ByRad

    Expert

  • Użytkownik
  • 985 postów

Napisano 2009.12.28, 12:17

@Senega: Zdecydowanie popieram !! Też nie raz mi się zdarzało wklepywać "[code=auto:0]" zamiast "[syntax]" ;/

279.gif





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych