Jak najlepiej zaimplementować podświetlanie składni kodu źródłowego w Cocoa? [zamknięte]
chcesz poprawić to pytanie? Update the pytanie więc to on-topic {[3] } dla przepełnienia stosu.
Zamknięte 5 lat temu .
Popraw to pytaniePracuję nad aplikacją Cocoa, która powinna być w stanie analizować i wyróżniać kod źródłowy napisany w takich językach jak Objective-C, SQL, JavaScript, Python itp. Tekst powinien być również edytowalne (np. za pomocą NSTextView).
Proszę o poradę, jak najlepiej zaimplementować taką funkcję w systemie Mac OS X 10.5.
Nie ma potrzeby obsługi automatycznego uzupełniania i innych dodatkowych funkcji. Proste formatowanie według słów kluczowych, ciągów, # zawiera I liczb, ale z fajną wydajnością jest po prostu OK.
Również byłoby świetnie, gdyby konfiguracja według języków była obsługiwana.
Dzięki!5 answers
Przygotowując projekt, który będzie wymagał czegoś podobnego, znalazłem następujące (ale nie oceniałem ich dogłębnie):
- / Developer/Examples/OpenGL/Cocoa / GLSLEditorSample implementuje podświetlanie składni.
- IDEKit , "open-source framework, który zapewnia edytowanie kodu źródłowego programisty, w tym kolorowanie składni, funkcje popup i dzielone ramki". To nie zostało zaktualizowane przez jakiś czas (to deklaruje kompatybilność 10.2 i 10.3 i pochodzi z Kreatora projektów projekt - można przekonwertować za pomocą Xcode 2.5).
- UKSyntaxColoredTextDocument .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-16 17:54:52
Popieram Radę Ahrumana - szczególnie patrząc na UKSyntaxColoredTextDocument Uli, ponieważ to wskaże ci właściwy kierunek, do których klas itp. będziesz musiał się o tym dowiedzieć.
To kolejne doskonałe źródło informacji:
Http://www.cocoadev.com/index.pl?ImplementSyntaxHighlighting
Powodzenia - podświetlanie składni jest trudne do poprawienia, ale dużo zabawy po drodze!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-16 23:08:48
Ostatnio musiałem poszukać rozwiązania podświetlania składni dla Cocoa i po przeszukaniu Stack Overflow, Google i GitHub nie znaleźli nic nowoczesnego, łatwego do ponownego użycia i wciąż w aktywnym rozwoju.
Wydaje się, że większość zakreślaczy składni w dzisiejszych czasach jest pisana dla sieci. Na szczęście osadzenie ich w widoku sieci Web jest dość łatwe do użycia w dowolnej aplikacji Cocoa. Komunikacja z edytorem może odbywać się poprzez protokół WebKit WebScriptObject .
Oto przykładowy wrapper dla popularnego edytora tekstu JavaScript CodeMirror dla Cocoa: https://github.com/swisspol/CodeMirrorView
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-30 20:50:56
Możesz użyć Pygments, który jest napisany w Pythonie, aby wygenerować HTML reprezentację kodu źródłowego, który następnie może być przedstawiony w widoku sieci Web.
(Uwaga, Jak widać w komentarzu poniżej-ta odpowiedź była na pierwotne pytanie, które nie wspominało o edytowalnym tekście.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-16 14:05:20
Możesz rozważyć użycie flex w sposób opisany (w języku niemieckim) tutaj [1]. Przykład takiego podejścia można znaleźć tutaj [2].
[1] http://www.osxentwicklerforum.de/thread.php?postid=14764 [2] http://objectiveous.github.com/davenport/