3

I have turn-on-auto-fill as part of my text-mode-hook. This works great for new documents, but when I open a buffer that is not filled with hard breaks I rarely want to start doing so to a single paragraph just because I make one edit to the buffer.

Is there a way to scan the whole buffer after opening to see whether it already is auto-filled? And turn on auto-fill-mode in that case but leave it off otherwise?

I've searched EmacsWiki and MELPA Stable and didn't see anything relevant.

Michael Hoffman
  • 665
  • 6
  • 14
  • 1
    Since there's no one, objective way to decide "file is/is not already auto-filled," you'll need to decide on some heuristics that Emacs can use to decide if the file is "sufficiently" auto-filled to count it as such. For example: if *any* paragraph has a newline within it, does it count? If *any* paragraph has, say, more than 80 characters between newlines, does it count? Once you've decided what heuristic to use, it shouldn't be hard to tell Emacs to apply it. – Dan Sep 08 '16 at 18:53
  • The heuristic I had in mind is if you ran `fill-region` on the whole buffer, would the contents change? If no, then the buffer is already auto-filled, and `auto-fill-mode` should be enabled. – Michael Hoffman Sep 08 '16 at 19:23
  • Unfortunately, that won't work: `fill-region` will modify the buffer even if it makes no actual changes. Aside from that, if your `fill-column` value differs even a little from that used when the file was last modified, you'll get changes even though it's already been auto-filled. – Dan Sep 08 '16 at 19:25
  • 2
    @MichaelHoffman what you can do is to write a function that count char length per line and compare to the value of `fill-colomn` – Xah Lee Sep 08 '16 at 20:59

0 Answers0