Dokładnie to chodzi o kombinacje Ctrl+/. Ja chciałem zrobić tak jak jest na większości stron, czyli samo / ale był opór gdyż chyba nadpisywałoby to skrót używany na FF.
Ale to ma działać również wtedy kiedy jest Focus na edytor? Czy tyło spoza? Bo zauważyłem że Ctrl+? pokazuje searcha, jeśli ma się focus nie w edytorze.
Ciekawe, bo używamy w module Praca CKEditora. On też oparty jest na content-editable
ale sprawdziłem i tam mu ten skrót jakoś nie przeszkadza.
Może tam nie jest podpięty ten plugin? No dziwne, sprawdzę.
@TomRiddle czy gdzieś można zobaczyć źródła edytora? Bo coś nie mogę znaleźć. npm podaje że paczka zajmuje 100 kB :o Czy to jest rozmiar z testami?
Wysłałem Ci zapro na githubie.
Bo aż się boje ile to będzie zajmować razem z CodeMirror :| Myślałem, czy by przy pomocy WebPacka nie ładować edytora dynamicznie.
Mój kod edytora to około 12 plików po 30-50 linijek każdy. W repo dodatkowo są testy, kodu około 20x więcej plus demo. Te testy w ogóle zajęły sporo czasu żeby je napisać, teraz jest ich około 220, otestowane są komendy, eventy, formatowanie i niektóre extensiony.
Mogę Ci wysłać podsumowanie ile zajmuje dokładnie każdy jeden z "pod-elementów" CodeMirror.
I co, nie dało się tego finalnie zintegrować z Prism czy z autocomplete używanym u nas?
Z jednym i drugim są dwa podejścia.
Z pismem jest taki że nie udało mi się łatwo "wydestylować kolorowania" bo prism miesza bezpośrednio w DOMie, na co nie można pozwolić jak się używa CodeMirror. Mogę wystawić API dla dowolnego kolorowania, ale problemem jest, jak zrobić żeby Prism wolał moje API zamiast mieszać w DOMie bezpośrednio.
Co do autocomplete - pomyślałem że mógłbym skorzystać z tego co autocomplete co już jest w coyote (dla userów), ale jest w 4play również autocomplete do kodu, więc kod autocomplete'a tak czy tak byłby zaladownay.
P.S. Chyba dobrze by było zrobić merga Twojego brancha nie z masterem, ale z gałęzią o innej nazwie, prawda? Byśmy mogli wtedy na 4programmers.dev wdrożyć tę gałąź.
Tak myślałem na początku, ale nie widziałem żadnej branchy develop
ani nic takiego. Zrobię rebase z nowym master
em i zmienię target.
@Adam Boduch Czy jeśli zmienię <textarea>
w aktualnym markdown.vue
na nowy edytor, to autocomplete userów będzie gdzieś jeszcze używany?
Możemy pójść na wiele kompromisów co do nowego edytora. Domyślam się że masz porobione plugin w Vue do komponentów, bo chciałbyś mieć taką strukturę "extensionów", żeby móc dodawać zachowanie do edytora bez potrzeby jego zmiany, taki Open/Close? Bo jeśli tak to super, bo nowy edytor jest zbudowany na podobnej zasadzie. Np. żeby wyłączyć autocomplete wystarczy go nie dodawać jako extension, i już :> masz już dostęp do Github'a, więc możesz zauważyć że w pliku Editor.js
widać to bardzo ładnie, że tak na prawdę to ja bardziej rozwijam extensiony do code mirror, niż faktyczny edytor, więc jeśli mamy jakiś problem z extensibility to z nowym edytorem możemy to łatwo ogarnąć. Editor.js
to bardziej taka fasada.
Co do kolorowania składni, to możemy w sumie wywalić je. Będziemy kolorować tylko block kodu na szaro, ale samych słów kluczowych nie musimy, byłyby na czarno. Wtedy można by się pozbyć extensiona - parser języków. No albo możemy tak przerobić Prism żeby nie mieszał w DOMie tylko zwrócił jakąś listę tokenów albo coś takiego. Twój wybór w sumie. Bo tak jak o tym teraz myślę, to faktycznie trochę głupio że w edytorze jest jedno kolorowanie a w poście inne.
Co do ładowania dynamicznego różnych extensionów, to możemy to zrobić, powinno to działać całkiem okej.
Co do autocomplete, to mi osobiście bardzo się podoba motyw że z extensionem CodeMirror do autocomplete, okienko się pokazuje pod cursorem, a nie na dole. Fajne to działa jak jest długi post, pewnie dałoby się to dodać do aktualnego, ale w nowym już jest.
PS: Myślę że wystarczy żebyś mi powiedział dokładnie jakie cechy ma spełniać ten edytor od strony developerskiej?
Może np chciałbyś żeby edytorem dało się sterować dyrektywami Vue? Teraz zrobiłem tak że wszystko jest włączone domyślnie, ale bardzo prosto dałoby się go tak przerobić, żebyś mógł np. dodać autocomplete pisząc <vue-editor v-autocomplete/>
albo żeby się dało włączyć kolorowanie dyrektywą v-parse
czy coś takiego. Widzę taki motyw w Twoich komponentach Vue, i jeśli zależy Ci na tym to możemy dodać coś takiego do nowego edytora, no problemo. On jest zbudowany na extensionach tak czy tak, więć po prostu możemy włożyć kilka extensionów do "core'a edytora", a reszte dodawać przez dyrektywy i pluginy.
A jeśli chodzi Ci o coś innego, to just tell me, dostosujemy nowy edytor pod Twój styl.