Emacs: Folding kode dengan mouse
![](http://3.bp.blogspot.com/-sbWD3ixiYA4/TfYC6oAx8BI/AAAAAAAAAlc/8vM6oC4RXtE/ s1600/hideshowvis.png)
Ketika mencoba Emacs pertama kali, saya sempat bingung gimana caranya melakukan folding atau menyembunyikan kode didalam suatu blok. Folding kode sangat berguna untuk melakukan review terhadap kode. Saya cari di internet ada beberapa cara dan setelah dicoba saya paling tertarik dengan hideshow, hal ini karena hideshow melakukan folding code berdasarkan penanda ekspresi blok pada setiap bahasa programming, misalkan bahasa C, maka blok nya dimulai dari karakter “{”.
Berdasarkan situsnya Hideshow merupakan minor-mode dari Outline- mode yang secara default telah terinstall pada Emacs (saya menggunakan Emacs 23.2.3), cara mengaktifkannya bisa dengan M-xhs-minor-modeRet atau agar aktif setiap kali Emacs dijalankan, tambahkan kode berikut pada file**_ .emacs_**
(add-hook 'php-mode-hook 'hs-minor-mode)
(add-hook 'java-mode-hook 'hs-minor-mode)
Kode diatas untuk mengaktifkan hideshow jika kita membuka file Java dan Php.
Agar lebih mudah saya sendiri membuat shortcut untuk mengaktifkan atau menonaktifkan hideshow mode ini, yaitu dengan menggunakan tombol [f7], tambahkan kode berikut pada .emacs agar shortcutnya aktif
(global-set-key [f7] 'hs-minor-mode)
Setelah mencoba beberapa lama, saya penasaran untuk membuat kode agar folding bisa dilakukan dengan mouse, hal ini saya dapat ketika mempelajari bagaimana membuat shortcut pada fringe di Emacs.Fringe sendiri adalah margin antara line-number dengan editor area, seperti yang terlihat pada gambar diatas.
Setelah melakukan beberapa percobaan akhirnya berhasil juga membuat beberapa baris kode untuk membuat hideshow mode menggunakan mouse.
Berikut kodenya
(defun hideshow-toggle-with-mouse (event)
" Toggle hideshow with mouse "
(interactive "@e")
(mouse-set-point event)
(end-of-line)
(hs-toggle-hiding))
(global-set-key (kbd "") 'hideshow-toggle-with-mouse)
Ketikkan kode tersebut di file .emacs dan sekarang folding bisa dilakukan dengan mouse. Untuk mengaktifkan perintah diatas hideshow-mode harus telah aktif.