Tema: Re: Framework
Autorius: Laimis
Data: 2009-05-12 00:25:56
Justas Butkus rašė:

> Vakarą! :)

Taip!

>>  - intelligent indentation;
> Mmm... Tik jei kalbame apie EMACS'ą, tai sykiais šis mane nuvilia.
> Gal rankos negeros, ar kodas ne toks...

Yra dvi medalio pusės:
  - kodą geriau priprasti rašyti (lygiuoti) taip, kaip siūlo variklis; 
tai universaliai gera praktika, nes pats variklis yra paremtas gera 
praktika ir ją tokiu būdu (jos nelaužant) diegia.
  - „GNU Emacs is an extensible, customizable text editor—and more.“ 
http://www.gnu.org/software/emacs/

;-)

Neteko nusivilti.  Dažniausiai lygiavimas užsiožiuoja, jei viršutinio 
kodo sintaksė aiškiai (su)laužyta; pavyzdžiui trūksta skliaustelio, 
kabliataškio ar jų per daug...)

> Tai yra, bendru atveju - gal geriau nereikia. Tiesiog kartais kai jau
> "pasišviečia" tam intelektualiam varikliui, tai galima tik liūdėti.

Kokiam varikliui, kokiuose režimuose? (kalbame apie Emacs/Vim?). Net 
įtarčiau, kad galbūt per daug reikalaujama, nes esminius dalykus abu 
redaktoriai daro skrupulingai gerai (na, remdamiesi gana aiškiomis, 
apibrėžtomis taisyklėmis, išraiškomis).

> 
>>  - paren match;
> Viena funkcija - vienas langelio pavertimas. :)
> Na, arba kitaip - perskaitęs nuo pradžios iki pabaigos ir supranti kas
> daroma, ir atsimeni, ir atskiri.

Oi ne...:

1.
....	
(func (+ (* 5 (expt a 4))) (- (* 3 (expt b 3) (+ x z)))))))

2.
If
  If
   If
    ...
    } ... } ... } ... } ... } ... } ... } ... } }

3.
   LEFT JOIN ...
    LEFT JOIN ...
     LEFT JOIN ...
      ...
       LEFT JOIN ... )))))))))))

> Gal ir "nice to have", tačiau nereikėtų šituo įrankiu naudojantis
> bjauroti kodo ("tiesiog pažiūrėsim kaip veikia"), o po to taip ir palikti...

?
Parodomas (pažymimas), randamas (logiškai, sintaksiškai) neužbaigtas 
blokas, kuris išskiriamas skliausteliais ('[]', '{}', '()') arba 
parodoma tokio bloko pradžia.
Sakyčiau, kad tai viena iš tų savybių, kurias redaktoriaus lekseris 
„must have“.


>>  - block (un)comment
> Gaila kalbos, kurioje nėra block comment'ų, ar pre-procesoriaus if'ų.

Tokių nėra taip jau mažai...
Na gerai, išskirsiu apskritai blokinę/regioninę manipuliaciją (tokių 
įvairių kalbų režimuose esti ne taip jau ir mažai): region (un)indent, 
region eval, region diff, ...


>>  - bookmarks
> Na, taip ir nepriėjo rankos. Tiksliau vėl vienas iš "nice to have".
> Ar failai pernelyg trumpi, ar dar kas...

Sunku patikėti, kad taip uoliai mankštini savo atmintį atsidaręs 10-30+ 
projekto bufferr'ių...
Nes  kitas variantas, yra tai, kad gaišti laiką bandydamas prisiminti, o 
tiksliau vėl ir vėl, iš naujo ieškodamas ir kliūdamas akimis už visų tų 
buferių, kol apkeliauji tas viskas skirtingas, išsibarsčiusias kodo 
kerteles... ;-)


> Atsiprašau už tas priekabes po punktais.
> Pasistengsiu nebetęsti, nes tuoj antras puslapis nuo framework'ų nueis.

Čia gi omnitel ng. Omnitel *php* ng. Klausimo autorius, turbūt, jau 
seniai pamiršo ko klausęs (gal net kad klausęs) ir ką jam atsakė. Galima 
drąsiai fleiminti, jei tik noras yra.


Na, gerai pridėsiu dar keletą redaktoriaus naudingų savybių:
  - session
  - frame'ai (nepatikėsiu, kad niekada neprisireikė vizualiai,
    lygiagrečiai-nuosekliai nagrinėti/modifikuoti dviejų ar daugiau
    fragmentų lakstant po buffer'ius be bookmarkų.. ;-)
  - search & replace in files;
  - keyboard macros;
  - spellcheck
  - tetris!
(ir dar tikrai būtų galima tęsti...)