Open sijualle opened 5 months ago
Olen tuota jo alusta asti miettinyt. Alunperin meillä ei ollut riittävästi käyttötapauksia suunitella tuota. Etenenisin seuraavasti:
autosave
, autoSave
tai auto_save
. Jos tuo on hankalaa, niin etsitään ja vaihdetaan kaikki olemassa olevat "väärin" kirjoitetut. Toki
tulevaisuudessa tulee ongelmia joskus että onko kyseessä yksi vai kaksi sanaa ja kirjoitusasuun voi tulla vaihtelua.
Entä jos pluginista tehtävä JSON aina tekisi lowercase + remove('_ '). Ja sisäisesti kaikki nimet olisivat lowercase?Haasteita tulee aika paljon tosiaan makroista. Sampsa on vienyt makrot vielä pykälää pidemmälle omalla kurssillaan. Simppelein ratkaisu olisi ettei koko editori aukea jos on makroja. Tai sitten editori voisi aueta readonlynä ja YAML-preview olisi näkymä makrot avattuun tilanteeseen, jolloin attrbuutteja voi kelailla. Jos attribuutin arvo tulee ilmankin makron avaamista (rivi esiintyy alkuperäisessä YAMLissa), niin silloin editori voisi toki sallia sen arvon muuttamisen.
Toinen haaste tulee olioattribuuteista. Sekin saattaisi välttävästi toimia jos YAML-previewessä näkyy ne oloina ja sitten klikataan jotakin olion omaa attribuuttia, niin editoriin tulee sen attribuutin muokkaus. Tähän taas haasteita voi tuoda jos olioita on esitetty JSONina.
Tällä hetkellä kaikki pluginien attribuutit annetaan markdownina ja käyttäjä kirjoittaa sen tekstinä. Tällöin käyttäjän pitää tietää että mitä attribuutteja pluginissa voi käyttää ja että missä muodossa ne pitää antaa. Noita pluginkohtaisia attribuutteja on dokumentoitu milloin missäkin päin TIMin ohjeita, mutta ne eivät ole aina ajan tasalla eikä uusi käyttäjä välttämättä löydä niitä tai lähde etsimään olisiko siellä joku ominaisuus jota en ole vielä huomannut. Itsekin olen lisännyt plugineihin monia attribuutteja eri käyttätapauksia varten, ja en edes omista lisäämistäni attribuuteista aina muista että kirjoitetaanko joku textArea isolla vai pienellä A:lla.
Plugineita voisi hyvin editoida graafisella käyttöliittymällä. Tässä liittymässä olisi lista kaikista plugineista, ja sille kelpaavia attribuutteja sen mukaan mikä plugin on kyseessä. Attribuuttien listasta voisi poimia ne attribuutit jotka haluaa käyttöön
Pohdintoja: