2011-12-20 16 views
22

Ostatnio robiłem rozwój w TWIG. Jest to szablonowy język HTML, który jest bardzo prosty i solidny.Rozszerzanie definicji języka (podświetlanie kodu) w notatniku ++

Ustawiłem notatnik ++, aby automatycznie traktował pliki .twig jako html. To jest ok, ale nie dostaję żadnego podświetlania składni w moich funkcjach gałązkowych.

Składnia gałązki jest niezwykle prosta (według projektu) i można ją łatwo dodać do notatnika ++. Problem polega na tym, że wszystko, co znajduję na ten temat, to albo tworzenie nowej definicji języka (i nie chcę na nowo definiować html), albo modyfikowanie koloru dla istniejących bitów składniowych w języku.

Czy istnieje sposób na skopiowanie definicji języka, a następnie zmodyfikowanie go w Notatniku ++? Jeśli nie, czy istnieje sposób w Notatniku ++, aby dodać dodatkowe bity składniowe do istniejącej definicji języka?

edit

TWIG jest szablon html język/silnika. Składnia jest taka sama jak html, z dodatkiem kilku tagów otwierających/zamykających (w szczególności {%%}, {{}} i {# #}) dla instrukcji sterujących. można przeczytać więcej na ten temat na the twig website

edycji # 2

Na podstawie odpowiedzi z Brianem Deragon, ja badali 3 pliki. Oto, co do tej pory wymyśliłem/zrobiłem:

  • \ plugins \ APIs \ html.xml - Wydaje się, że można zdefiniować słowa kluczowe do autouzupełniania. Zrobiłem kopię pliku o nazwie twig.xml
  • langs.model.xml - Ponownie, lista słów kluczowych, ze wszystkimi językami w 1 pliku XML. Skopiowałem obiekt HTML i zastąpiłem nazwę i parametry ext gałązką.
  • Stylers.model.xml - zawiera listę różnych elementów i informacji o stylu (kolor, kolor bg, czcionka itp.) Dla każdego z nich. Skopiowałem sekcję HTML i zmieniłem parametry nazwy i deskrytu na gałązkę.

Po dokonaniu tych zmian, otworzyłem plik gałązek w notatniku ++, mając nadzieję, że zostanie wyświetlony w opcjach językowych. Niestety, nie pojawił się, co doprowadziło mnie do przekonania, że ​​niektóre z nich są mocno zakodowane (a zatem to, czego chcę, może nie być możliwe).

Jednak stylers.model.xml jest interesujący. Każdy wpis zawiera kilka elementów zdefiniowanych poniżej:

<LexerType name="twig" desc="TWIG" ext=""> 
    <WordsStyle name="DEFAULT" styleID="0" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" /> 
    <WordsStyle name="COMMENT" styleID="9" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> 
    <WordsStyle name="TAG" styleID="1" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> 
    <WordsStyle name="TAGEND" styleID="11" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" /> 
    ... 
</LexerType> 

Wydaje się, że są to style zdefiniowane dla różnych elementów. Nie mogę znaleźć nigdzie, gdzie te elementy są zdefiniowane. langs.model.xml ma definicję początku i końca komentarza, ale nie dla innych ograniczników. to, czego naprawdę potrzebuję, to miejsce, w którym można powiedzieć notepad ++, aby traktować {} jako ogranicznik, podobnie jak w przypadku <> teraz.

edit # 3

Ja również poszukuje na tej liście zdefiniowanych przez użytkownika języków Notepad ++ http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=User_Defined_Language_Files zdefiniowane przez użytkownika w językach użyć innego silnika, ale może być w stanie znaleźć tam, który jest podobny do html na tyle, że mogę go zaadaptować.

Odpowiedz

-1

Możliwy duplikat tego postu: https://superuser.com/questions/40876/assigning-custom-extensions-to-a-languages-syntax-highlighting-in-notepad

Wszystko, co musisz zrobić, to dodać niestandardowe rozszerzenie w Ustawienia-> Style Configurator

kliknij na HTML i dodawać swoje przedłużenie w polu Zew użytkownika.

EDYCJA: Jeśli chcesz dodać więcej reguł do swojego języka, być może będziesz musiał dodać inny plik XML w notatniku ++ -> wtyczki-> API Jeśli uważasz, że jest jak HTML, po prostu skopiuj plik html.xml i zapisz jako gałązkę .xml Dodaj więcej reguł do tego pliku XML

+0

powiedziałem w moim pytaniu, że zrobiłem to (i ustawić go w leczeniu .twig jako HTML). Chcę dodać dodatkowe podświetlanie kodu do definicji do tagów TWIG. – MrGlass

+1

Za każdym razem, gdy próbowałem edytować ten plik, nie widziałem żadnych wyników. albo dostaję błędy, albo nic się nie dzieje. Czy możesz wysłać przykład? Zaktualizuję swój post z odrobiną informacji o TWIG – MrGlass

14

Powinieneś być w stanie po prostu skopiować i edytować plik definicji XML (html.xml); o ile nie potrzebujesz rzeczy wykraczających poza podstawy, takich jak składanie kodu, zaawansowane kolorowanie oparte na blokach obsługi przypadku lub wielu warunkach, oddzielne formatowanie znaków wiodących, kolorowanie etykiet, komentarze w formacie xml, mieszanie języków (kolorowanie skrypty osadzone), obsługa kolorowania typów kaczych itp. Jeśli potrzebujesz czegoś "zaawansowanego", musisz napisać własny lexer, w którym to przypadku większość z poniższych odnosi się do ciebie.

Nawet te szablony, które wymieniono poniżej, powinny dać Ci możliwość rozpoczęcia pracy nad własnym plikiem definicji języka.


O ile mi wiadomo, Notepad ++ używa Scintilla Lexers do określania reguł kodu.

Będziesz musiał stworzyć swój własny lexer, ale ... HTML Scintilla Lexer jest już zawarty w Scintilli source code.

Następnie należy wstawić niestandardowy lexer przy użyciu plug-in, np. Gary's Lua Highlighter Plugin.

Zasoby dla budowania niestandardowych lexer:

Mając na uwadze powyższe, Geany jest bardzo podobna do Notepad ++ (oparte wyłączyć ten sam silnik, Scintilla), więc warto zobaczyć czy to już zostało zrobione dla Geany, czy w projekcie jest projekt open source. To przynajmniej dałoby ci przewagę.

Jeśli to nie pomoże, istnieje IDE i redaktorów z podporą Gałązka wbudowany, jak:

gedit opublikował thei r Definicja XML języka here, która może pomóc jako punkt odniesienia podczas tworzenia własnego pliku definicji lub lexera; istnieje również inny szablon opublikowany przez chłopaków z Twig here, który może być pomocny.

Oto najlepsze Notepad ++ - konkretne tutoriale do tworzenia niestandardowych Lexer w/user Defined Języki mogę znaleźć:

Jeśli chcesz dostać odważny i budowania własne dll Scintilla, odwołaj się do tych wątków, aby zobaczyć faceta, który go uruchomił i wyświetlić na liście języków (użyj poprzedniego/następnego wątku, aby zobaczyć odpowiedzi, lub indeksu wątku, jest to lista dyskusyjna, więc jej interfejs ja im zapobiec najlepsza)

nadzieję, że pomoże albo dostaje przynajmniej więcej przewagę!

+0

To na pewno wygląda na pouczające, źle się w to wkręca. – MrGlass

+0

Jeśli koncentrujesz się na kombinacji PHP/Twig, dałbym ponownie PhpStorm +1, to płatne IDE, ale koszt jest niski, wsparcie dla PHP jest gotowe do użycia i wspiera Twig na zewnątrz również z tego pola, bez szablonów, bez plików xml, bez definicji języka, dodatkowych pobrań, wtyczek, niczego, od razu po wyjęciu z pudełka, pełne wsparcie gałązką. 99 $ za jednego programistę, odnowienie 49 $, a na wakacjach 29,99 $ odnowienia promocji. –

+0

Czy obsługuje on SFTP? Robię wszystkie moje zmiany na żywo na serwerze dev – MrGlass

Powiązane problemy