Rubocop'un yaratıcısı tarafından geliştirilen Neocaml, Emacs kullanıcıları için OCaml programlama deneyimini modernleştiren yeni bir pakettir. Eski caml-mode'un eskiliği ve tuareg-mode'un karmaşıklığı göz önüne alındığında, Neocaml, TreeSitter teknolojisiyle desteklenen daha çağdaş ve hafif bir alternatif sunmayı hedefliyor. Paket, hem OCaml hem de OCaml Interface için ana modlar içerirken, aynı zamanda bir OCaml toplevel (REPL) ile entegrasyon sağlıyor. Geliştirici, daha önce TreeSitter tabanlı Emacs modları oluşturma girişimlerinin Emacs Lisp bilgisi eksikliği nedeniyle başarısız olduğunu belirtiyor ve kendi güçlü Emacs paketi geliştirme deneyimi, TreeSitter'a olan ilgisi ve OCaml'e olan sevgisiyle bu projeyi eğlenceli ve ilginç bulduğunu ifade ediyor.
Neocaml, OCaml geliştiricileri için bir dizi kullanışlı özellik sunar. Bunlar arasında .ml ve .mli dosyaları için dört seviyeli TreeSitter tabanlı font-locking, döngüsel girinti desteğiyle TreeSitter tabanlı girintileme ve beginning-of-defun, end-of-defun gibi gelişmiş navigasyon seçenekleri bulunur. Ayrıca, dile özgü kategorilere sahip Imenu desteği, ff-find-other-file ile uygulama ve arayüz arasında geçiş yapabilme yeteneği ve neocaml-repl aracılığıyla OCaml REPL entegrasyonu mevcuttur. Paket, fill-paragraph, yorum devamlılığı ve comment-dwim gibi kapsamlı yorum desteği, sınırlayıcı karakterlerde elektrikli girintileme ve M-x neocaml-install-grammars komutuyla TreeSitter gramerlerinin kolay kurulumunu da içerir.
Ek olarak, Neocaml, M-x compile için derleme hatası düzenli ifadeleri, _build dizini farkındalığı (derleme çıktılarını açarken kaynak dosyasına geçiş önerisi), ocaml-eglot desteğiyle Eglot entegrasyonu ve yaygın OCaml operatörleri için Prettify-symbols gibi özelliklerle geliştirici iş akışını iyileştirir. dune ile entegrasyon da sağlanmıştır. Neocaml, MELPA üzerinden veya doğrudan GitHub deposundan kolayca kurulabilir, bu da OCaml geliştiricilerine Emacs içinde daha verimli ve keyifli bir ortam sunar.
Neocaml, Emacs kullanıcılarına OCaml programlama için modern, hafif ve TreeSitter destekli kapsamlı bir geliştirme ortamı sunarak eski ve karmaşık modlara çağdaş bir alternatif getiriyor.