prettier / prettier-emacs

Minor mode to format JS code on file save
http://jlongster.com/A-Prettier-Formatter
372 stars 53 forks source link

prettier-js-mode reformats file even when file is in .prettierignore #62

Open tamouse opened 4 years ago

tamouse commented 4 years ago

I have the following in my emacs init.el:

(use-package prettier-js 
  :ensure t
  :config
  (add-hook 'web-mode-hook
        #'(lambda ()
        (enable-minor-mode
         '("\\.jsx?\\'" . prettier-js-mode)
         ))
        )
  (add-hook 'rjsx-mode-hook 'prettier-js-mode)
  )

In a project, I have this for .prettierignore:

*.spec.js
*.test.js

When I visit a file, src/score_to_grade.spec.js, it shows Prettier in the mode line, but on save, it reformats the file.

I seems that it's ignoring the ignore settings?

Additionally, if I use // prettier-ignore-start ... // prettier-ignore-end these are also not respected and the code between them is formatted in emacs prettier-js-mode.

If I run prettier from my terminal, both of these work as expected.

Versions:

rtm commented 3 years ago

Is there any known workaround for this issue, or any update?

rtm commented 3 years ago

// prettier-ignore-{start,end} don't work for me in JS files at least even from the command line. I don't think this features is defined to work for JavaScript. // prettier-ignore does work, though. Therefore, I think there are two separate problems happening here.

rtm commented 3 years ago

The problem with .prettierignore is that internally this mode copies the file into a temporary buffer and then applies prettier to that, so of course the filenames do not match. I'm not quite sure why it would be doing that. Wouldn't it be good enough to just execute prettier in place with the --write option?