From: Sam Steingold <sds@gnu.org>
To: emacs-devel@gnu.org
Subject: Re: Refactoring flymake.el
Date: Thu, 17 Aug 2017 14:08:24 -0400 [thread overview]
Message-ID: <lzwp62xe1z.fsf@gnu.org> (raw)
In-Reply-To: 87378q2r62.fsf@lolita
Hi João,
One thing about flymake that inconveniences me is that I cannot disable
it for some specific files.
I have a bunch of "scratch.py" files that I use as poor man's notebooks.
To disable flymake on them, I made this chanfe to flymake.el today:
--8<---------------cut here---------------start------------->8---
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index ed34d9aaa5..edb87c92b3 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -133,6 +133,13 @@ flymake-master-file-count-limit
:group 'flymake
:type 'integer)
+(defcustom flymake-disallowed-file-name-regexp nil
+ "File names matching this regexp will not be checked.
+This overrides `flymake-allowed-file-name-masks'."
+ :group 'flymake
+ :type 'string
+ :version "26.1")
+
(defcustom flymake-allowed-file-name-masks
'(("\\.\\(?:c\\(?:pp\\|xx\\|\\+\\+\\)?\\|CC\\)\\'" flymake-simple-make-init)
("\\.xml\\'" flymake-xml-init)
@@ -228,14 +235,16 @@ flymake-get-file-name-mode-and-masks
"Return the corresponding entry from `flymake-allowed-file-name-masks'."
(unless (stringp file-name)
(error "Invalid file-name"))
- (let ((fnm flymake-allowed-file-name-masks)
- (mode-and-masks nil))
- (while (and (not mode-and-masks) fnm)
- (if (string-match (car (car fnm)) file-name)
- (setq mode-and-masks (cdr (car fnm))))
- (setq fnm (cdr fnm)))
- (flymake-log 3 "file %s, init=%s" file-name (car mode-and-masks))
- mode-and-masks))
+ (unless (and flymake-disallowed-file-name-regexp
+ (string-match flymake-disallowed-file-name-regexp file-name))
+ (let ((fnm flymake-allowed-file-name-masks)
+ (mode-and-masks nil))
+ (while (and (not mode-and-masks) fnm)
+ (let ((item (pop fnm)))
+ (when (string-match (car item) file-name)
+ (setq mode-and-masks (cdr item)))))
+ (flymake-log 3 "file %s, init=%s" file-name (car mode-and-masks))
+ mode-and-masks)))
(defun flymake-can-syntax-check-file (file-name)
"Determine whether we can syntax check FILE-NAME.
--8<---------------cut here---------------end--------------->8---
and set `flymake-disallowed-file-name-regexp` to "scratch".
it seems to be working, so I was thinking about pushing it.
Do you think there is a better approach?
Thanks.
--
Sam Steingold (http://sds.podval.org/) on darwin Ns 10.3.1504
http://steingoldpsychology.com http://www.childpsy.net
http://islamexposedonline.com http://iris.org.il http://no2bds.org
In the race between idiot-proof software and idiots, the idiots are winning.
next prev parent reply other threads:[~2017-08-17 18:08 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-17 14:40 Refactoring flymake.el João Távora
2017-08-17 16:57 ` John Wiegley
2017-08-17 18:08 ` Sam Steingold [this message]
2017-08-17 22:32 ` Stefan Monnier
2017-08-18 14:51 ` Sam Steingold
2017-08-18 15:11 ` Dmitry Gutov
2017-08-18 16:13 ` Sam Steingold
2017-08-18 16:25 ` Dmitry Gutov
2017-08-18 17:59 ` Sam Steingold
2017-08-18 18:52 ` Noam Postavsky
2017-08-18 19:38 ` Sam Steingold
2017-08-18 16:26 ` Clément Pit-Claudel
2017-08-18 20:32 ` Stefan Monnier
2017-08-18 13:04 ` Dmitry Gutov
2017-08-18 19:20 ` João Távora
2017-08-19 1:59 ` Leo Liu
2017-08-21 12:50 ` Refactoring flymake.el - jumped the gun João Távora
2017-08-23 3:30 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=lzwp62xe1z.fsf@gnu.org \
--to=sds@gnu.org \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.