.tsx文件高亮为灰色是因为未安装language-typescript-react插件或config.cson中scope映射错误;需安装该插件、重启atom、配置filetypes为'.tsx': 'source.tsx'及customfiletypes为"source.js": ["tsx"]。

为什么 .tsx 文件打开还是灰的?
不是 Atom 坏了,也不是主题没选对,90% 是因为没装对 language 插件,或者 config.cson 里映射的 scope 名错了。Atom 默认不识别 .tsx,它连“这是 TypeScript + JSX”都判断不出来,更别说高亮了。
必须装 language-typescript-react,不是 language-typescript
language-typescript 只处理纯 .ts,对 tsx 没有语法定义;language-typescript-react 才真正提供 source.tsx 这个 scope —— 这是高亮生效的前提。
- 在 Atom 设置 → Install 中搜
language-typescript-react,点 Install - 装完必须重启 Atom:这个插件注册 scope 时依赖进程级初始化,热加载不生效
- 别装
atom-typescript:它已停更,和 TS 5.x / Node ≥18 冲突,还会干扰 syntax 解析
config.cson 必须写对 scope 映射
装完插件只是第一步,还得告诉 Atom:“遇到 .tsx 文件,请用 source.tsx 这个语法解析器”。映射错一个字母(比如写成 source.typescript 或 source.jsx)就完全失效。
打开 ~/.atom/config.cson(macOS/Linux)或 %USERPROFILE%\.atom\config.cson(Windows),在 core: 下加:
fileTypes: '.tsx': 'source.tsx'
- 确认右下角状态栏显示的是
source.tsx,不是source.js或text.html - 验证方法:打开一个已高亮的
.tsx文件,按Ctrl+Shift+P→ 输入Editor: Log Cursor Scope,第一行必须是source.tsx - 已有标签页不会自动刷新,新开一个
.tsx文件才生效
JSX 内容不着色?补上 customFileTypes 委托
即使 .tsx 整体高亮了,return ( <div>...</div> ) 里的 JSX 部分可能还是灰的——这是因为 JSX 语法需要被委托给 JS 解析器,但默认没做这层关联。
在同一个 config.cson 的 core: 下,追加:
customFileTypes: "source.js": ["tsx"]
- 不是
source.jsx,Atom 内部用的是source.js来承载 JSX token - 这条配置让
language-javascript插件参与解析.tsx中的 JSX 片段 - 如果还缺 JSX 补全或括号匹配,检查
bracket-matcher是否启用,并确认它能拿到source.tsx层级的作用域
最容易被忽略的点:scope 名必须一字不差,重启不可跳过,且 language-typescript-react 和 language-javascript 必须同时启用——少一个,JSX 或类型注解就会掉色。











