Karena tujuan Periode Ikatan Komunitas adalah untuk mendiskusikan proyek Anda dengan mentor Anda, menerima masukan dan memahami basis kode sehingga Anda dapat memulai proyek Anda secepatnya sejak Hari ke-1,

Saya telah menulis ikhtisar kecil tentang apa yang akan saya lakukan selama masa kerja GSoC saya. Saya telah membuat daftar penjelasan singkat tentang semua tugas, karena ini akan membantu saya dan mentor saya untuk merencanakan segala sesuatunya dengan tepat.

Fase 1

Saya akan memulai pekerjaan saya di repo coala-bears. Ini akan menjadi alat baris perintah, di mana pengguna akan diminta untuk menentukan nama beruang, bahasa yang akan digunakan, dll. Hal-hal minimum yang diperlukan untuk menjalankan beruang akan diatur untuk pengguna sebagai kode boilerplate , agar pengguna dapat bekerja dengan file pengujian dan kemudian pengguna dapat memodifikasi sesuai dengan linter yang dapat dieksekusi.

coala-bears — create akan menjadi CLI yang akan menanyakan pertanyaan tertentu kepada pengguna tentang beruang yang akan dibuat oleh pengguna. File sampel untuk beruang akan dibuat berdasarkan nilai yang dimasukkan oleh pengguna. pertanyaannya akan seperti

apakah ini berbasis beruang koreksi otomatis atau regex?

nama beruang

bahasa yang akan digunakan untuk lint

Itu akan dikemas dalam modul python dan diunggah ke PyPi.

Fase 2

Akan mengerjakan Lint, Output dan Hasil.

  • Navigasi Hasil: Perubahan ini akan dilakukan di kelas Interaksi Konsol, di mana saat ini pengguna hanya dapat melangkah lebih jauh pada kesalahan yang dilaporkan oleh beruang. Akan menyenangkan jika memiliki opsi “kembali ke sebelumnya” juga.
  • Pemeriksaan Kode Sumber Tertanam : Kode dapat dibagi menjadi beberapa bagian berbeda dan kemudian beruang yang sesuai dapat dijalankan pada bagian tersebut. Tujuannya adalah, jika suatu file memiliki banyak sintaks seperti PHP yang memiliki kode html, linter untuk PHP hanya boleh dijalankan di bagian yang merupakan PHP.
  • Regex Multiline: Beberapa linter memiliki pesan kesalahan multiline tetapi jika regex hanya mem-parsing satu baris, maka bagian sisanya akan hilang. Saya akan menambahkan variabel untuk membuat multiline dan dapat digunakan dalam kasus seperti itu.
  • Multiple Lint Bear: Idenya adalah jika saya memiliki proyek dengan banyak file dengan bahasa pemrograman berbeda, maka bear yang ditentukan oleh pengguna dalam daftar yang dipisahkan koma hanya akan memberi serat pada file yang dimaksudkan dan bukan file lain.

Fase 3

Akan memodifikasi UI beruang batubara. Pada fase ini, saya berencana mengimplementasikan fitur-fitur tertentu seperti Pelengkapan Otomatis, Penyorotan Sintaks dan Bilah Status ke CLI. Saya akan menggunakan perpustakaan yang sangat bagus Python Prompt Toolkit untuk mencapai tugas ini.

  • Untuk Pelengkapan Otomatis, saya akan menentukan cara agar semua nama beruang ditambahkan. Pencocokan string fuzzy juga dapat diimplementasikan.
  • Untuk Status Bar, saya berencana menampilkan detail nama file, toolbar bawah dapat memiliki pesan spesifik dari linter. Saya masih mengerjakan detail lebih lanjut yang dapat ditambahkan di bagian ini.
  • Saya akan menggunakan lexer Pygments, untuk penyorotan sintaksis. Variabel bahasa akan dipetakan ke lexer pigmen yang berbeda dan untuk ekstensi file tertentu, lexer yang sesuai akan dijalankan.

Fase 4

Fase ini bersifat opsional, berdasarkan apakah saya dapat menyelesaikan fase yang tersisa sesuai jadwal dan apakah saya memiliki sisa waktu dalam periode GSoC untuk menyelesaikannya. Pada fase ini, saya akan membuat situs web untuk beruang batubara di mana pengguna dapat melihat semua beruang yang terdaftar di satu tempat, dikategorikan menurut bahasa. Akan ada informasi setiap beruang yang diambil dari dokumen. Sebuah tabel yang rapi juga akan hadir untuk setiap beruang di mana kita bisa mendapatkan semua statistik, info lebih lanjut tentang linter, penulis beruang, URL asciinema.

Saya berharap untuk mendiskusikan poin-poin ini dengan mentor saya dan berdasarkan itu saya akan memulai coding saya pada atau sebelum tanggal 23 Mei.

Nantikan pembaruan selanjutnya dari pihak saya :)