Artikel ini ditujukan untuk pemula dalam pemrograman di Scala, yang saya sendiri, dan hanya untuk mereka yang ingin mulai menulis kode program dalam VSCode.
Kebetulan satu-satunya panduan untuk bekerja dengan Scala di Visial Studio Code adalah
video ini di saluran YouTube DevInsideYou. Ini menjelaskan dengan sangat terperinci proses pemasangan dan pengaturan lingkungan untuk Kode VS dan Teks Sublim.
Artikel ini adalah adaptasi dari video dengan beberapa tambahan dari saya. Anda dapat menonton video atau melanjutkan membaca artikel ini (atau melakukan keduanya), dalam hal ini, saya harap ini akan bermanfaat bagi Anda.
Instalasi
Hal pertama yang perlu kita lakukan adalah menginstal
Scalu sendiri, serta sistem membangun proyek
SBT , jika Anda belum melakukannya.
Untuk bekerja dengan Scala di VSCode ada ekstensi
Logam .
Fitur Logam
- Diagnosis yang akurat saat menyimpan:

- Transisi ke definisi dan arahkan bantuan popup:

- Jenis definisi:

- Pengisian otomatis saat melakukan panggilan:

Hanya fungsionalitas dasar yang terdaftar di sini, ikuti
dokumentasi untuk deskripsi yang lebih rinci.
Berikut ini cuplikan dari video DevInsideYou yang menunjukkan bagaimana Scala berinteraksi dengan editor kode:
Protokol server bahasa - digunakan antara alat klien (IDE) dan server yang menyediakan fungsi khusus untuk bahasa pemrograman (pelengkapan otomatis, transisi ke definisi, dll.).
Logam =
Meta (dari Scalameta) +
LS (dari Server Bahasa - protokol server bahasa standar).
LSP mengurangi kompleksitas m-kali-n dengan memberikan dukungan tingkat tinggi untuk bahasa pemrograman apa pun dalam editor, IDE, atau endpoint klien apa pun, ke tugas m-plus-n yang lebih sederhana.
LSP dibuat oleh Microsoft untuk mendefinisikan bahasa umum yang dapat digunakan oleh penganalisa bahasa pemrograman. Microsoft Visual Studio Code mendukung protokol ini di luar kebiasaan.
LSP memungkinkan komunitas bahasa untuk fokus pada satu server bahasa kinerja tinggi, yang dapat memberikan penyelesaian kode, tooltip, pergi ke definisi, mencari tautan dan banyak lagi, sementara editor dan komunitas klien dapat fokus pada pembuatan satu, kinerja tinggi, intuitif dan ekstensi idiomatik yang dapat berkomunikasi dengan server bahasa apa pun untuk secara instan memberikan dukungan bahasa yang mendalam.
Inisialisasi Proyek
1 arah
Inisialisasi melalui
file scala . Untuk melakukan ini, buka folder proyek dan buat struktur default berikut di dalamnya:
Output sampel setelah Logam pertama kali dimulai:
2 arah
Cara kedua melibatkan menggunakan
pabrik . Untuk melakukan ini, buat file build.sc di folder proyek dan buka.
Output sampel setelah Logam pertama kali dimulai:
3 arah (final)
Inisialisasi dengan
SBT . Buat file
build.sbt di folder proyek dengan konten berikut:
name := "scala-vscode-example" version := "0.1" scalaVersion := "2.13.1" triggeredMessage := Watched.clearWhenTriggered autoStartServer := false scalacOptions ++= Seq( "-feature", "-deprecation", "-language:implicitConversions", "-language:higherKinds" ) addCompilerPlugin("org.typelevel" %% "kind-projector" % "0.10.3")
Output sampel setelah Logam pertama kali dimulai:
Ketika Logam mendeteksi ruang kerja sbt yang tidak ada properti
/ build.prop , muncul pemberitahuan yang menyarankan Anda meningkatkan ke 0.13.7:
Mereka merekomendasikan penggunaan sbt versi 1.2.8. Untuk mengubah versi sbt, buat perubahan berikut pada file
project / build.properties :
Untuk memeriksa versi sbt, gunakan perintah:
$ sbt sbtVersion
Kami menginisialisasi lingkungan kerja sbt di folder proyek:
$ sbt
Proyek impor
Untuk mengimpor proyek, klik tombol
Impor build di notifikasi yang muncul atau masukkan perintah:
Setelah membuat perubahan pada skala apa pun, file Logam akan secara otomatis mengompilasinya:
Dokter
Digunakan untuk memperbaiki masalah konfigurasi build potensial. Untuk mulai menggunakan:
Kesimpulan:
Bloop
Bloop adalah server pembangun dan alat CLI untuk Scala yang bekerja dengan SBT dan memiliki dukungan eksperimental untuk alat pembangun lainnya seperti
Maven ,
Gradle, dan
Mill . Jika ruang kerja Anda berisi direktori
.bloop dengan file Bloop JSON, Logam akan secara otomatis terhubung dengannya.
Manfaat Bloop:- Mengkompilasi, menguji, dan menjalankan kode Scala secepat mungkin. Kompilasi terjadi secara otomatis ketika kode sumber diubah, peluncuran dan pengujian program tidak memerlukan kompilasi ulang;
- Mudah diintegrasikan dengan alat bantu bangunan, aplikasi baris perintah, editor, dan alat khusus;
- Itu dimulai secara terpisah dari IDE, sehingga tidak tergantung pada penyelesaian atau reboot;
- Ini mempercepat pembukaan proyek, karena Logam tidak perlu menjalankan server bawaan untuk Anda.
Cuplikan berikut dari video "Happy Life With Scala Metals" menunjukkan proses membangun aplikasi:
Catatan : ada beberapa ketidakakuratan dalam gambar.
Gabriele Petronella menunjuk mereka dalam komentarnya di bawah video:
Pada gambar, panah BSP yang lebih rendah secara teknis tidak benar. Seperti yang Anda tunjukkan dengan benar, jika alat bantu berbicara BSP, ia dapat berintegrasi langsung dengan logam tanpa melalui Bloop. Pindah dari alat bangun ke Bloop adalah cara untuk menambahkan integrasi BSP ke alat bangun itu sendiri, dan itu adalah langkah khusus yang tidak menggunakan BSP. Informasi lebih lanjut dapat ditemukan di sini .
Bloop terintegrasi dengan IDE dan editor teks, menyediakan umpan balik pendek dan diagnostik kompiler yang andal.
Bloop digunakan dalam Logam dalam dua cara:- Jika Bloop diinstal pada komputer Anda, Logam hanya akan terhubung ke server build yang ada (disarankan);
- Jika Bloop tidak diinstal, server Logam akan mengunduhnya dan menjalankannya dalam mode asli.
SemanticDB adalah model data untuk informasi semantik, seperti karakter dan tipe, tentang program dalam Scala dan bahasa lainnya. Setelah menyusun proyek, sbt-logam mengirimkan informasi ke database semanticdb-scala lokal.
Instalasi Bloop
Untuk memulai, unduh
versi terbaru :
$ curl -L https://github.com/scalacenter/bloop/releases/download/v1.3.2/install.py | python
Selanjutnya, Anda perlu membuat salinan layanan bloop untuk pengguna saat ini:
$ cp ~/.bloop/systemd/bloop.service ~/.config/systemd/user/
Juga, agar tidak terus menulis path ke skrip, Anda dapat menyalin bloop ke
/ usr / bin :
$ sudo cp /.bloop/bloop /usr/bin/
Mulai ulang daemon systemctl:
$ systemctl --user daemon-reload
Menambahkan bloop ke startup:
$ systemctl --user enable bloop
Namun, jika Anda tidak akan bekerja dengan Scala terus-menerus, saya tidak merekomendasikan menghapus layanan ini dari startup. Anda dapat menonaktifkan autorun dengan perintah berikut:
$ systemctl --user disable bloop
Menjalankan bloop:
$ systemctl --user start bloop
Tampilkan informasi tentang koneksi saat ini:

Peluncuran aplikasi
Ketika layanan bloop berjalan, Anda dapat menjalankan program yang dikompilasi menggunakan perintah ini di direktori proyek:
$ bloop run <proj-name>
Anda juga dapat menambahkan hotkey ke
~ / .config / Code / User / keybindings.json :
{ "key": "meta+r", "command": "workbench.action.terminal.sendSequence", "args": { "text": "bloop run ${workspaceFolderBasename}\u000D" } }
Jika Anda tidak menjalankan layanan bloop, Anda dapat memulai aplikasi langsung melalui sbt, namun, dalam hal ini, aplikasi akan dikompilasi ulang setiap kali, yang akan memengaruhi waktu peluncuran program:
$ sbt run
Sumber data
Kasus uji kecil proyek scala terletak di
repositori ini di github. Jika Anda juga akan menyimpan proyek Anda, pastikan untuk menambahkan daftar pengecualian berikut ke file
.gitignore :
*.class *.log project/ target/ .bloop/ .metals/