首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不需要修改makefile的Flymake替代方案

不需要修改makefile的Flymake替代方案
EN

Stack Overflow用户
提问于 2012-03-19 21:45:18
回答 1查看 487关注 0票数 2

根据this的问题,为了让Flymake工作,你必须在makefile中添加一个特殊的目标。我不想这么做。有没有Flymake的替代品,它不需要你摆弄makefile?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-26 13:00:08

不是这样的。

您无需更改makefile即可运行flymake。正如jtahlborn的评论所说,flymake是一个当你的缓冲区发生变化时运行某些东西的框架。它可能是任何东西。你只需要告诉flymake要运行什么。

例如,有一个名为csslint的程序。它检查CSS文件并标记任何警告或非标准用法。用于CSS的Lint。当我编辑css文件(在css模式下)时,我想让flymake运行CSSlint并显示问题所在。我就是这么做的。

代码语言:javascript
运行
复制
(defun cheeso-flymake-css-init ()
  "the initialization fn for flymake for CSS"
  (let* ((temp-file (flymake-init-create-temp-buffer-copy
                       'cheeso-flymake-create-temp-intemp))
         (local-file (file-relative-name
                      temp-file
                      (file-name-directory buffer-file-name))))
    (list (concat (getenv "windir") "\\system32\\cscript.exe")
          (list "c:\\users\\cheeso\\bin\\csslint-wsh.js" "--format=compiler" local-file))))

(defun cheeso-css-flymake-install ()
  "install flymake stuff for CSS files."
  (add-to-list
   'flymake-err-line-patterns
   (list css-csslint-error-pattern 1 2 3 4))

  (let* ((key "\\.css\\'")
         (cssentry (assoc key flymake-allowed-file-name-masks)))
    (if cssentry
        (setcdr cssentry '(cheeso-flymake-css-init))
      (add-to-list
       'flymake-allowed-file-name-masks
       (list key 'cheeso-flymake-css-init)))))


(eval-after-load "flymake"
  '(progn
     (cheeso-css-flymake-install)))

这将在加载flymake时运行一个fn。fn在flymake的CSS文件关联列表中安装一个条目。该列表中的条目告诉flymake要运行哪个命令。

还要告诉flymake如何解析CSS lint错误消息。但这是大体的想法。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9771339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档