Skocz do zawartości


Uwaga!

Zapraszamy do nowego działu Pliki. Więcej informacji w tym temacie.

- - - - -

Simple Syntax Highlighter


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

#1 Arthemis

Arthemis

    Rozgrzewam się

  • 53 postów

Napisano 22.12.2009 08:30

Simple Syntax Highlighter
wersja: 0.1.5.3

Dołączona grafika

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 ;)

[spoiler=Lista aktualnie obsługiwanych języków]
  • Ansi C
  • C++
  • CSS
  • Delphi / Pascal
  • HTML
  • INI
  • JAVA
  • PHP
[/spoiler]


[spoiler=Historia zmian]
  • Simple Syntax Highlighter 0.1.5.3

  • Simple Syntax Highlighter 0.1.5.2

  • Simple Syntax Highlighter 0.1.5.1




  • Simple Syntax Highlighter 0.1.4.1



  • Simple Syntax Highlighter 0.1.3.1


  • Simple Syntax Highlighter 0.1.2.1


  • Simple Syntax Highlighter 0.1.1.1
[/spoiler]

Użytkownik Arthemis edytował ten post 17.05.2010 04:40


#2 Senega

Senega

    Początkujący

  • 1317 postów

Napisano 22.12.2009 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???????

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).
Ogarnianie SDK dla BadaOs...

#3 rysi3k

rysi3k

    Adept

  • 379 postów

Napisano 22.12.2009 10:34

U mnie podobnie, otrzymuję:
>> Language : ANSI C
0001 ??????t
a wpisałem:
[syntax_c] void hello_world() {
cout << "testuje hello world! Wtyczka do AQQ do kolorowania skladni :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ę

  • 53 postów

Napisano 22.12.2009 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

  • 1317 postów

Napisano 22.12.2009 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.
Ogarnianie SDK dla BadaOs...

#6 Arthemis

Arthemis

    Rozgrzewam się

  • 53 postów

Napisano 22.12.2009 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

  • 1170 postów

Napisano 22.12.2009 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 :)

Win7, IE9, kompozycja: Standard, wtyczki: AQQ Streamer, Gravatar, TabKit


#8 Arthemis

Arthemis

    Rozgrzewam się

  • 53 postów

Napisano 22.12.2009 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

    Plugins Developer

  • 2506 postów

Napisano 22.12.2009 18:16

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

Dołączona grafika
Wejdź na pole minowe i zostań beta-testerem wtyczek do AQQ!
Doceniasz moją pracę i poświęcony wolny czas na rzecz AQQ? Dołączona grafika


#10 Lord ByRad

Lord ByRad

    Weteran

  • 721 postów

Napisano 22.12.2009 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 22.12.2009 18:55


#11 Arthemis

Arthemis

    Rozgrzewam się

  • 53 postów

Napisano 22.12.2009 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 22.12.2009 19:20


#12 Senega

Senega

    Początkujący

  • 1317 postów

Napisano 23.12.2009 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).
Ogarnianie SDK dla BadaOs...

#13 Arthemis

Arthemis

    Rozgrzewam się

  • 53 postów

Napisano 23.12.2009 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

    Weteran

  • 721 postów

Napisano 23.12.2009 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ą.

#15 Arthemis

Arthemis

    Rozgrzewam się

  • 53 postów

Napisano 25.12.2009 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 25.12.2009 03:14


#16 Beherit

Beherit

    Plugins Developer

  • 2506 postów

Napisano 25.12.2009 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...

Dołączona grafika
Wejdź na pole minowe i zostań beta-testerem wtyczek do AQQ!
Doceniasz moją pracę i poświęcony wolny czas na rzecz AQQ? Dołączona grafika


#17 Arthemis

Arthemis

    Rozgrzewam się

  • 53 postów

Napisano 26.12.2009 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

    Weteran

  • 721 postów

Napisano 26.12.2009 17:51

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

#19 Senega

Senega

    Początkujący

  • 1317 postów

Napisano 28.12.2009 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.
Ogarnianie SDK dla BadaOs...

#20 Lord ByRad

Lord ByRad

    Weteran

  • 721 postów

Napisano 28.12.2009 12:17

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




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

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