nixfmt
1,639
Stars
78
Forks
28
Watchers
22
Open Issues
MPL-2.0
许可证
Haskell
语言
2018-08-02
创建时间
2026-11-11
最近更新
项目能做什么
Nixfmt 是由官方团队维护的 Nix 语言代码格式化工具,基于 Haskell 开发。它致力于解决 Nix 代码排版不统一的问题,核心功能是严格按照官方标准自动规范并美化 Nix 代码。支持在 NixOS、VS Code 及 Neovim 等环境与编辑器中无缝集成使用。
来源:AI 基于仓库事实生成
· 内容以仓库实际 README 为准
使用说明 查看原始 README 原仓库文档
中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# Nixfmt
Nixfmt is the official formatter for Nix language code.
The standard Nix format incorporates artistic formatting and is defined in [standard.md](./standard.md).
Nixfmt is maintained by the [Nix formatting team](https://nixos.org/community/teams/formatting/).
This document is the user documentation, see [CONTRIBUTING.md](./CONTRIBUTING.md) for contributor documentation.
## Installation
> [!NOTE]
> `nixfmt` can only process one file at a time.
> Consider using a configuration helper for [formatting a project](#in-a-project).
### In the environment
#### NixOS
To install `nixfmt` on NixOS for all users, add it to the [`environment.systemPackages`](https://search.nixos.org/options?show=environment.systemPackages) configuration option:
```nix
{ pkgs, ... }:
{
environment.systemPackages = [ pkgs.nixfmt ];
}
```
To install it on NixOS for a particular user, add it to the [`users.users.<user>.packages`](https://search.nixos.org/options?show=users.users.%3Cname%3E.packages) configuration option:
```
{ pkgs, ... }:
{
users.users.example-user-name.packages = [ pkgs.nixfmt ];
}
```
#### Home Manager
To install `nixfmt` in Home Manager, add it to the [`home.packages`](https://nix-community.github.io/home-manager/options.xhtml#opt-home.packages) configuration option:
```nix
{ pkgs, ... }:
{
home.packages = [ pkgs.nixfmt ];
}
```
#### Declarative shell environment
To make `nixfmt` available in a shell environment invoked with [`nix-shell`](https://nix.dev/manual/nix/2.28/command-ref/nix-shell), add it to the `packages` argument of `mkShell`:
```nix
{ pkgs }:
pkgs.mkShellNoCC {
packages = [ pkgs.nixfmt ];
}
```
### In an editor
#### neovim + nixd
```lua
vim.lsp.config('nixd', = {
settings = {
formatting = {
command = { 'nixfmt' },
},
},
})
vim.lsp.enable('nixd')
```
> [!NOTE]
> This only works when `nixfmt` is available [in the environment](#in-the-environment).
#### neovim + nil
```lua
vim.lsp.config('nil', = {
settings = {
formatting = {
command = { 'nixfmt' },
},
},
})
vim.lsp.enable('nil')
```
> [!NOTE]
> This only works when `nixfmt` is available [in the environment](#in-the-environment).
#### neovim + none-ls
```lua
local null_ls = require("null-ls")
null_ls.setup({
sources = {
null_ls.builtins.formatting.nixfmt,
},
})
```
> [!NOTE]
> This only works when `nixfmt` is available [in the environment](#in-the-environment).
#### Visual Studio Code (VSC)
[vscode-nix-ide](https://github.com/nix-community/vscode-nix-ide) can invoke `nixfmt`.
> [!NOTE]
> This only works when `nixfmt` is available [in the environment](#in-the-environment).
### In a project
#### `nixfmt-tree`
[`nixfmt-tree`](https://search.nixos.org/packages?channel=unstable&show=nixfmt-tree) provides an instance of `treefmt`, pre-configured to use nixfmt.
Simply add it to your shell:
```nix
mkShell {
packages = [ pkgs.nixfmt-tree ];
}
```
Then run `treefmt` from
阅读完整原文
项目深度分析 AI 生成
企业级 Nix 代码规范检查与 CI 自动化审查服务 (SaaS / GitHub App)
| 产品构想 | 基于 nixfmt 与 Nix AST,构建集成到 GitHub/GitLab 的云端代码审查与自动修复服务,提供格式化合规门禁、变更 diff 最小化校验及一键自动 PR 修复。 |
| 核心功能 | GitHub App 自动检测 PR 代码格式;针对破坏性格式变更的风险预警;自动提交修复 commit;企业级风格规则报表与 CI 缓存加速。 |
| 目标用户 | 在生产环境中深度使用 Nix/NixOS 的技术团队与 DevOps 部门(推测)。 |
| 难度/周期 | 中等 · 1-3个月 · 成本:轻量应用服务器与 CI 测试运行环境成本(约 $50-$200/月)。 |
| 收费模式 | Freemium 模式:开源项目免费,私有仓库按席位或代码仓数量收取月度订阅费(推测)。 |
| 竞争风险 | 可替代性高,团队通常倾向于使用免费的 treefmt、git-hooks.nix 或自建 GitHub Action 来解决该问题(已验证事实说明社区有成熟免费方案)。 |
| 依据 | 尚需验证的假设 |
IDE 增强版 Nix 语言套件与商业插件支持
| 产品构想 | 针对 VS Code / JetBrains / Neovim 提供开箱即用、免去本地繁琐 Nix 环境安装与 LSP 配置的高性能 Nix IDE 扩展,内置格式化修复、智能提示与错误诊断。 |
| 核心功能 | 内嵌高性能 WebAssembly/原生 nixfmt 二进制,无需系统预装 Nix 即可格式化;格式化与语法校验无缝结合;多项目配置自动识别。 |
| 目标用户 | 新手 Nix 开发者、跨平台协作的团队成员(如 macOS/Windows 混合环境开发 Nix)。 |
| 难度/周期 | 高(涉及跨平台打包与 LSP/IDE 生态集成) · 3-6个月 · 成本:开发机器与代码签名证书费用(约 $100-$300/年)。 |
| 收费模式 | JetBrains Marketplace 付费插件或 VS Code 增值功能订阅(推测)。 |
| 竞争风险 | 开源社区已存在 vscode-nix-ide、nil、nixd 等成熟且免费的 LSP 和插件组合(已验证事实)。 |
| 依据 | AI推测 |
Nix 架构现代化与代码库自动重构迁移咨询服务
| 产品构想 | 针对拥有历史遗留大型 Nix 配置(如老旧 NixOS 配置、复杂 Flakes 架构)的企业,提供标准格式化迁移、语法现代化升级与工程化重构顾问服务。 |
| 核心功能 | 自动化重构脚本;大仓一键批量格式化无冲突迁移方案;工程规范制定与团队内训培训。 |
| 目标用户 | 技术栈全面转向 NixOS/Nix 且积累了技术债务的企业(推测)。 |
| 难度/周期 | 中等 · 按项目定制(1-4周/单) · 成本:人工时间成本为主。 |
| 收费模式 | 项目制咨询服务费、按人天计费(推测)。 |
| 竞争风险 | Nix 企业级市场盘子相对小众且集中,获客渠道窄,难以形成标准化规模效应。 |
| 依据 | 尚需验证的假设 |
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心
竞品与相似项目 GitHub Search 真实检索
相似项目数据正在完善中,暂不展示(避免误导)
项目优势与风险
| 技术成熟度 | 创建于 2018-08-02,近 30 天仍在推送,发布过 14 个 Release |
| 社区活跃 | Star 1,639 / Fork 78 / Issue 22(数据支持,可自行核实) |
| 许可证 | MPL-2.0 |
| 主要风险 | 上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价 |
安装与使用
此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。