Jumat, 26 Februari 2010

Syntax Highlighting, Deteksi Tipe File, dan Indentasi untuk Scala di Vim

Default vim di Arch Linux tidak menyertakan file-file scala.vim untuk syntax, ftdetect, dan indent. Berikut ini adalah langkah-langkah yang saya lakukan untuk meng-enable penggunaan Scala di Vim.

Buat Directory
[bpdp@bpdp-arch ~]$ mkdir .vim
[bpdp@bpdp-arch ~]$ cd .vim
[bpdp@bpdp-arch .vim]$ mkdir ftdetect
[bpdp@bpdp-arch .vim]$ mkdir indent
[bpdp@bpdp-arch .vim]$ mkdir syntax
[bpdp@bpdp-arch .vim]$ ls -la
total 20
drwxr-xr-x  5 bpdp users 4096 2009-09-17 06:27 .
drwx------ 95 bpdp users 4096 2009-09-17 06:26 ..
drwxr-xr-x  2 bpdp users 4096 2009-09-17 06:23 ftdetect
drwxr-xr-x  2 bpdp users 4096 2009-09-17 06:27 indent
drwxr-xr-x  2 bpdp users 4096 2009-09-17 06:26 syntax
[bpdp@bpdp-arch .vim]$ 
Mengambil file-file yang diperlukan

File-file tersebut berada di trunk svn berikut: https://lampsvn.epfl.ch/trac/scala/browser/scala-tool-support/trunk/src/vim dan bisa diambil via web melalui trac. Disini saya menggunakan wget untuk langsung mengambil file-file tersebut:

syntax
[bpdp@bpdp-arch syntax]$ wget https://lampsvn.epfl.ch/trac/scala/export/18712/scala-tool-support/trunk/src/vim/syntax/scala.vim
--2010-02-26 08:42:47--  https://lampsvn.epfl.ch/trac/scala/export/18712/scala-tool-support/trunk/src/vim/syntax/scala.vim
Resolving lampsvn.epfl.ch... 128.178.154.32
Connecting to lampsvn.epfl.ch|128.178.154.32|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6043 (5.9K) [text/plain]
Saving to: “scala.vim”

100%[=====================================================================>] 6,043       13.2K/s   in 0.4s    

2010-02-26 08:42:50 (13.2 KB/s) - “scala.vim” saved [6043/6043]

[bpdp@bpdp-arch syntax]$ 
ftdetect 
[bpdp@bpdp-arch syntax]$ cd ../ftdetect/[bpdp@bpdp-arch ftdetect]$ wget https://lampsvn.epfl.ch/trac/scala/export/18712/scala-tool-support/trunk/src/vim/ftdetect/scala.vim
--2010-02-26 08:44:45--  https://lampsvn.epfl.ch/trac/scala/export/18712/scala-tool-support/trunk/src/vim/ftdetect/scala.vim
Resolving lampsvn.epfl.ch... 128.178.154.32
Connecting to lampsvn.epfl.ch|128.178.154.32|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 65 [text/plain]
Saving to: “scala.vim”

100%[=====================================================================>] 65          --.-K/s   in 0s      

2010-02-26 08:44:48 (2.86 MB/s) - “scala.vim” saved [65/65]

[bpdp@bpdp-arch ftdetect]$ 
indent
[bpdp@bpdp-arch ftdetect]$ cd ../indent/
[bpdp@bpdp-arch indent]$ wget https://lampsvn.epfl.ch/trac/scala/export/18712/scala-tool-support/trunk/src/vim/indent/scala.vim
--2010-02-26 08:46:51--  https://lampsvn.epfl.ch/trac/scala/export/18712/scala-tool-support/trunk/src/vim/indent/scala.vim
Resolving lampsvn.epfl.ch... 128.178.154.32
Connecting to lampsvn.epfl.ch|128.178.154.32|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2187 (2.1K) [text/plain]
Saving to: “scala.vim”

100%[=====================================================================>] 2,187       --.-K/s   in 0.01s  

2010-02-26 08:46:53 (193 KB/s) - “scala.vim” saved [2187/2187]

[bpdp@bpdp-arch indent]$
Proses di atas akan menghasilkan file-file berikut ini:
[bpdp@bpdp-arch .vim]$ ls -laR
.:
total 20
drwxr-xr-x   5 bpdp users 4096 Sep 17 06:27 .
drwx------ 113 bpdp users 4096 Feb 26 08:17 ..
drwxr-xr-x   2 bpdp users 4096 Feb 26 08:44 ftdetect
drwxr-xr-x   2 bpdp users 4096 Feb 26 08:47 indent
drwxr-xr-x   2 bpdp users 4096 Feb 26 08:42 syntax

./ftdetect:
total 12
drwxr-xr-x 2 bpdp users 4096 Feb 26 08:44 .
drwxr-xr-x 5 bpdp users 4096 Sep 17 06:27 ..
-rw-r--r-- 1 bpdp users   65 May 30  2008 scala.vim

./indent:
total 12
drwxr-xr-x 2 bpdp users 4096 Feb 26 08:47 .
drwxr-xr-x 5 bpdp users 4096 Sep 17 06:27 ..
-rw-r--r-- 1 bpdp users 2187 May 30  2008 scala.vim

./syntax:
total 16
drwxr-xr-x 2 bpdp users 4096 Feb 26 08:42 .
drwxr-xr-x 5 bpdp users 4096 Sep 17 06:27 ..
-rw-r--r-- 1 bpdp users 6043 Aug 16  2009 scala.vim
[bpdp@bpdp-arch .vim]$ 
Setelah itu vim/gvim bisa digunakan untuk mengedit file source code Scala. Berikut ini adalah contoh screenshot:


Pada vim, tampilannya adalah sebagai berikut:

0 komentar:

Posting Komentar