如何使用minibuffer为react js文件设置web-mode-content-type

时间:2015-06-24 07:43:42

标签: javascript emacs reactjs

我有此配置为web-mode文件启用.jsx

(add-to-list 'auto-mode-alist '("\\.jsx$" . web-mode))

但是当我对react文件进行.js扩展时,这会失败。 web-mode无法将内容类型关联为jsx

它说:

  

var web-mode-content-types-alist可用于将文件路径与内容类型

相关联

但我不想指定文件路径。

我想使用迷你缓冲或更好的自动检测来关联内容类型。

4 个答案:

答案 0 :(得分:1)

你可以使用

(setq web-mode-content-types-alist '(("jsx" . "/some/react/path/*\\.js[x]?\\'")))

或者,如果你不想为每个js文件检测jsx

(setq web-mode-content-types-alist '(("jsx" . "\\.js[x]?\\'")))

答案 1 :(得分:1)

你可以使用eval-expression(通常绑定到M-:)然后猛拉或输入以下表达式:

(setq web-mode-content-types-alist '(("jsx"  . "\\.js[x]?\\'")))

答案 2 :(得分:1)

问题已在最新版本中修复。这将以交互方式设置内容类型:

(web-mode-set-content-type "jsx")

答案 3 :(得分:0)

以下是我使用支持网络模式的反应jsx的设置。

(require 'jsx-mode)
(add-to-list 'auto-mode-alist '("\\.jsx\\'" . jsx-mode))
(autoload 'jsx-mode "jsx-mode" "JSX mode" t)

(custom-set-variables
 '(jsx-indent-level 2)
 '(jsx-cmd-options '("--add-search-path" "/path/to/search-path")))

;; add web mode indent for react jsx
(add-to-list 'auto-mode-alist '("\\.jsx\\'" . web-mode))