IDE (Integrated Development Environment) adalah software yang digunakan sebagai peranti pengembangan terintegrasi. IDE sangat penting dalam membangun aplikasi. Produktivitas pemrogram biasanya sangat tergantung dari kepiawaiannya menggunakan IDE. Bab ini membahas tentang IDE yang bisa digunakan untk membangun aplikasi menggunakan Rust. Ada beberapa software dasar yang akan dijelaskan dan digunakan dalam pembahasan ini, yaitu:
Pada umumnya, terkait dengan IDE, ada 2 kategori:
- IDE yang memang sejak awal khusus dirancang untuk suatu bahasa pemrograman tertentu. Contoh dari IDE ini antara lain adalah IDE Borland Delphi, IntelliJ IDEA, Apache NetBeans, dan lain-lain. Software jenis ini biasanya juga memberikan fasilitas pembuatan plugins untuk bahasa pemrograman lain dengan mekanisme plugins yang khusus untuk IDE tersebut, contohnya adalah Apache NetBeans yang bisa digunakan untuk C/C++, PHP, dan lain-lain. Mekanisme ini tidak cross software, artinya mekanisme plugin untuk Apache NetBeans tidak akan bisa digunakan oleh IntelliJ IDEA.
- Editor teks yang bersifat umum / generik dan memerlukan konfigurasi maupun plugin / add-on / tambahan untuk keperluan penggunaan editor teks tersebut untuk keperluan suatu bahasa pemrograman.
Kecenderungan saat ini menuju ke nomor 2, bahkan beberapa IDE (kategori nomor 1) juga menggunakan mekanisme nomor 2. Mekanisme pertama memang cenderung ditinggalkan karena setiap IDE / editor teks harus secara spesifik mendefinisikan dan mengelola plugins sendiri-sendiri. Selain mendatangkan kerepotan pengelole IDE / editor teks, hal ini juga mendatangkan kerepotan komunikas serta pengembangan kompilator / interpreter bahasa pemrograman. Karena berbagai kerepotan itu, makan muncul Language Server Protocol / LSP.
Dengan menggunakan mekanisme LSP, maka setiap IDE / editor teks hanya perlu membuat dan mengelola klien LSP saja sesuai dengan protokol LSP. Setelah itu, komunitas bahasa pemrograman tertentu akan membuat dan mengelola server LSP sesuai spesifikasi protokol LSP. Dengan demikian, selama IDE / editor teks mengikuti protokol klien LSP dan tersedia server LSP dari komunitas pengembangan bahasa pemrograman, maka sudah cukup untuk menjadikan IDE / editor teks tersebut sebagai IDE bahasa pemrograman sesuai dengan server LSP yang dikembangkan komunitas pengembang bahasa pemrograman tersebut. Protokol LSP menyediakan:
- Completion
- Hover/tooltips
- Go to definition
- Show/go to references
- Show method signatures
- Rename
- Code actions, misalnya untuk automatic formatting, organize imports,dan lain-lain.
Mekanisme LSP kurang lebih sebagai berikut:
Menjalankan IDE / Editor teks => menjalankan plugin / add-on klien LSP => mengaktifkan server LSP sesuai konfigurasi => IDE bahasa pemrograman.
Untuk kompilator Rust, server LSP dikembangkan di repo rls. Untuk menggunakan LSP, install terlebih dahulu rls
:
$ rustup component add rls rust-analysis rust-src
info: downloading component 'rls'
info: installing component 'rls'
info: downloading component 'rust-analysis'
2.8 MiB / 2.8 MiB (100 %) 868.9 KiB/s in 4s ETA: 0s
info: installing component 'rust-analysis'
info: downloading component 'rust-src'
2.3 MiB / 2.3 MiB (100 %) 1.2 MiB/s in 2s ETA: 0s
info: installing component 'rust-src'
$
Hasilnya adalah sebagai berikut:
$ rls --version
rls 1.41.0 (a82a052 2021-07-21)
$ rls --help
--version or -V to print the version and commit info
--help or -h for this message
--cli starts the RLS in command line mode
No input starts the RLS as a language server
$
Setelah itu, IDE / editor teks dikonfigurasi untuk mengaktifkan LSP.
Vim / Neovim
Mengkonfigurasi Vim / Neovim dari awal cukup menyita waktu dan cenderung ribet. Untuk menyingkat, akan digunakan SpaceVim. Dengan menggunakan SpaceVim, kerumitan-kerumitan instalasi klien LSP akan diabstraksi oleh Spacevim, sehingga menggunakan fasilitas LSP akan lebih mudah.
Instalasi Vim
Distribusi Linux biasanya secara default sudah menginstall Vim. Jika belum, maka bisa menggunakan package manager (apt, urpmi, dnf, pacman, dan lain-lain) ataupun install dari kode sumber Vim secara langsung. Untuk OS lain, bisa mengikuti petunjuk di halaman download Vim.
Instalasi Neovim
Neovim biasanya juga tersedia di berbagai distribusi Linux dan bisa diinstall menggunakan package manager. Untuk OS lain, bisa mengikuti petunjuk di GitHub Releases page untuk Neovim.
Instalasi SpaceVim
Instalasi Spacevim dijelaskan di [URL instalasi SpaceVim]. Jika menggunakan Windows, tersedia file install.cmd
yang bisa dijalankan secara langsung. Jika menggunakan Linux:
Instalasi SpaceVim untuk Vim dan Neovim
$ curl -sLf https://spacevim.org/install.sh | bash
Instalasi SpaceVim untuk Vim
$ curl -sLf https://spacevim.org/install.sh | bash -s -- --install vim
Instalasi SpaceVim untuk Neovim
$ curl -sLf https://spacevim.org/install.sh | bash -s -- --install neovim
$
Catatan: saat menginstall SpaceVim di Linux, kompilasi harus dilakukan untuk
vimproc.vim
. Masuk ke direktori$HOME/.SpaceVim/bundle/vimproc.vim
, setelah itu berikan perintahmake
. Hasilnya adalah file$HOME/.SpaceVim/bundle/vimproc.vim/lib/vimproc_linux64.so*
Konfigurasi SpaceVim
Konfigurasi SpaceVim diletakkan pada file $HOME/Spacevim.d/init.toml
. Berikut ini tambahan yang diperlukan untuk konfigurasi SpaceVim - Rust:
...
...
...
[[layers]]
name = "lang#toml"
[[layers]]
name = "lang#rust"
[[layers]]
name = "lsp"
filetypes = [
"rust"
]
[layers.override_cmd]
rust = ["rls"]
...
...
...
Catatan: plugin untuk TOML juga harus diaktifkan karena konfigurasi
cargo
menggunakan format serialisasi TOML.
Saat menjalankan Rust, akan diinstall paket-paket yang diperlukan secara otomatis. Setelah selesai instalasi, Vim / Neovim bisa digunakan untuk IDE Rust.
Visual Studio Code / VSCodium
Visual Studio Code (selanjutnya disebut VS Code adalah IDE generik yang dibuat oleh Microsoft. VS Code dirancang untuk memungkinkan adanya penambahan fasilitas melalui Extension. Daftar lengkap extensions bisa dilihat pada Extensions Marketplace.
VSCodium adalah versi VS Code tanpa telemetry. Telemetry adalah fasilitas dari VS Code yang mengumpulkan data dari pengguna untuk keperluan layanan yang lebih baik (setidaknya, definisinya mengatakan demikian). VS Code secara default mengaktifkan fasilitas telemetry. Bagian lainnya sama dengan VS Code sehingga pembahasan tetang VS Code juga berlaku untuk VSCodium. Selanjutnya, keduanya akan disebut dengan VS Code saja.
Instalasi VS Code / VSCodium
Untuk instalasi VS Code, cukup download dari download VS Code / (download VSCodium) dan kemudian ekstraksi hasil download tersebut. Untuk menjalankan VS Code, cukup jalankan code
yang terdapat pada direktori hasil ekstraksi. Jika menggunakan VSCodium, jalankan codium
yang terdapat pada direktori hasil ekstraksi.
Extension untuk Rust
Extension untuk Rust di VS Code tersedia di marketplace - Rust. Untuk melakukan instalasi, tekan Ctl-P
(Quick Open) dan masukkan perintah untuk instalasi berikut ini: ext install rust-lang.rust
. Setelah itu, extension akan di-install:
Setelah itu, kita bisa menggunakan VS Code sebagai IDE Rust. Gunakan File - Open Folder untuk membuka proyek Rust.
Eclipse
Eclipse Foundation juga mempunyai proyek yang didedikasikan untuk membuat IDE Rust dengan basis IDE Eclipse untuk membangun aplikasi menggunakan Rust. Untuk memperoleh software ini, silahkan akses ke Web dari proyek Eclipse Corrosion. Sebagai informasi, sampai saat artikel ini ditulis, Eclipse Corrosion masih berstatus Eclipse Incubation, artinya belum menjadi proyek utama, masih masa inkubasi. Hal ini perlu diperjelas supaya memahami dukungan dari Eclipse Foundation terhadap IDE berbasis Eclipse ini.
Untuk menggunakan Eclipse Corrosion, lihat terlebih dahulu versi terbaru dari Eclipse Corrosion di https://projects.eclipse.org/projects/tools.corrosion. Setelah itu, download Eclipse Corrosion dari https://download.eclipse.org/corrosion/releases/latest/products/. Kelak, jika sudah tidak berada di posisi inkubasi, Eclipse Corrosion akan bisa diambil dari download utama Eclipse.
Catatan: untuk menggunakan Eclipse, setidaknya harus memiliki JRE (Java Runtime Environment) versi 8.
Setelah itu, ekstrak hasil download:
$ tar -xvf eclipseide-rust-1.2.1-linux.gtk.x86_64.tar.gz
eclipse/
eclipse/p2/
eclipse/p2/org.eclipse.equinox.p2.engine/
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/CorrosionIDE.profile/
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/CorrosionIDE.profile/1623857155371.profile.gz
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/CorrosionIDE.profile/.lock
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/CorrosionIDE.profile/.data/
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/CorrosionIDE.profile/.data/org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions/
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/CorrosionIDE.profile/.data/org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions/jvmargs
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/CorrosionIDE.profile/.data/.settings/
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/CorrosionIDE.profile/.data/.settings/org.eclipse.equinox.p2.artifact.repository.prefs
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/CorrosionIDE.profile/.data/.settings/org.eclipse.equinox.p2.metadata.repository.prefs
eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/CorrosionIDE.profile/1623857155392.profile.gz
...
...
...
eclipse/plugins/org.eclipse.corrosion_1.2.1.202106081156.jar
eclipse/icon.xpm
eclipse/eclipse
eclipse/.eclipseproduct
eclipse/readme/
eclipse/readme/readme_eclipse.html
eclipse/dropins/
eclipse/eclipse.ini
eclipse/configuration/
eclipse/configuration/org.eclipse.equinox.simpleconfigurator/
eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
eclipse/configuration/config.ini
eclipse/configuration/org.eclipse.update/
eclipse/configuration/org.eclipse.update/platform.xml
$
Hasil ekstrak adalah direktori eclipse dengan isi sebagai berikut:
$ cd eclipse/
$ ls -la
total 376
drwxr-xr-x 8 zaky zaky 4096 Jun 16 22:25 ./
drwxr-xr-x 4 zaky zaky 4096 Sep 11 11:40 ../
-rw-r--r-- 1 zaky zaky 84784 Jun 16 22:25 artifacts.xml
drwxr-xr-x 4 zaky zaky 4096 Jun 16 22:25 configuration/
drwxr-xr-x 2 zaky zaky 4096 Jun 16 22:25 dropins/
-rwxr-xr-x 1 zaky zaky 80072 Jun 12 04:14 eclipse*
-rw-r--r-- 1 zaky zaky 821 Jun 16 22:25 eclipse.ini
-rw-r--r-- 1 zaky zaky 61 Jun 12 03:06 .eclipseproduct
drwxr-xr-x 37 zaky zaky 4096 Jun 16 22:25 features/
-rwxr-xr-x 1 zaky zaky 140566 Jun 12 04:14 icon.xpm*
drwxr-xr-x 4 zaky zaky 4096 Jun 16 22:25 p2/
drwxr-xr-x 11 zaky zaky 32768 Jun 16 22:25 plugins/
drwxr-xr-x 2 zaky zaky 4096 Jun 16 22:25 readme/
$
Untuk menjalankan Eclipse for Rust Developers, masuk ke direktori hasil ekstrak kemudian eksekusi
file eclipse sebagai berikut:
$ cd eclipse
$ ./eclipse
Setelah splash screen, Eclipse akan menanyakan workspace tempat menyimpan berbagai proyek Rust. Isikan seperti yang anda kehendaki (bebas), setelah itu,
klik pada Launch, maka akan dimunculkan window utama dari Eclipse. Sebelum mulai menggunakan Eclipse for Rust, isikan Rust Preferences dengan memilih Window - Rust Preferences:
Setelah isian sesuai, kita bisa menggunakan Eclipse for Rust:
Top comments (2)
Thanks mas tutornya, walopun saya masih ga mudeng dr part 1-3 haha.
lho kok sama :-D