sorawee / fmt

A code formatter for Racket
Other
72 stars 6 forks source link

Feature: Emacs fmt plugin #33

Closed xgqt closed 2 years ago

xgqt commented 2 years ago

This commit adds a small plugin to use raco fmt inside Emacs.

sorawee commented 2 years ago

For the record, here's a discussion from the Racket Discord.

sorawee — 05/28/2022
Thank you very much for the contribution!

I'm an Emacs newb, so I have a couple of questions:

- Does it make sense to structure the plugin this way? (as opposed to separating it as your own project)
- Do I need to do anything with (M)ELPA?
- Does it preclude other Emacs formatting packages from using fmt? https://github.com/lassik/emacs-format-all-the-code is currently one of the clients of fmt.
Also, do you have an instruction for how to install/use it?
(Yes, that's how newb I am =w=)

xgqt — 05/28/2022
Does it preclude other Emacs formatting packages from using fmt? 
no, absolutely not, it just calls the binary, it's not like thsi is some attachment to fmt itself that will somehow mess up the libs

Also, do you have an instruction for how to install/use it?
1. install reformatter package 
2. make install or open the buffer and run package-install-from-file (or somethign like that)

Does it make sense to structure the plugin this way? (as opposed to separating it as your own project)
A lot of projects keep plugins inside their main repo, so it definitely is not wrong.
But i like the monorepo approach so I'm biased :)

Do I need to do anything with (M)ELPA?
Not really, you/we can work on addign it to Melpa later.
@sorawee ^ 
and genrally how one install pkgs from Melpa:
1. Setup Emacs config:
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)

2. M-x  (Alt + x) & package-install & type <package-name>

sorawee — 05/28/2022
Cool! I'll try it and get back to you. Another concern that I have is that I don't want elisps to be included for DrRacket users, but I think that can be done by restructuring the project and tell the Racket package server to look for a subdirectory.

I will merge it for now. There are further adjustment that I want to make, but I'm busy this week, so that needs to be later.