Fuse
Reference

Templates

The project templates that set default file extensions and directory exclusions for each language or repository type.

A template is a named set of defaults that tells Fuse which file extensions to collect and which directories and file patterns to skip for a given project type. Selecting the right template is the difference between collecting a clean set of source files and collecting build output, lock files, and editor metadata alongside them. Fuse ships 26 templates covering common languages and repository types.

This page is for engineers choosing a template for a fusion and maintainers who need the exact defaults each one applies.

Purpose And Scope

A template supplies three lists: the file extensions to include, the directories to exclude by name, and an optional set of file patterns to exclude. Collection applies these lists when it scans the source directory, before any reduction or scoping runs.

How a template is chosen depends on how Fuse is invoked:

InvocationTemplate selected
fuse dotnetDotNet
fuse wikiAzureDevOpsWiki
fuse (generic command)A named template you pass
fuse_generic MCP toolA named template the client passes

The extension list a template provides is a default. You can add, remove, or replace it per run with --include-extensions, --exclude-extensions, and --only-extensions, documented in the Options reference.

Template Defaults

Each row lists the file extensions a template collects and the directories it excludes by name. Extension and directory lists are reproduced exactly as the template defines them.

TemplateExtensionsExcluded Directories
AzureDevOpsWiki.md.git .attachments
Clojure.clj .cljs .cljc .edntarget .cpcache .git
CppCSharp.cpp .hpp .h .c .cc .cs .csproj .slnbin obj Debug Release x64 x86 .vs .git
Dart.dart .yaml .lockbuild .dart_tool .pub-cache .git
DotNet.cs .razor .cshtml .xaml .csproj .props .targets .config .json .xml .yml .yaml .md .scss .css .html .htm .editorconfigbin obj .vs .git .idea node_modules TestResults packages artifacts
Elixir.ex .exs .eex .leex mix.exs_build deps .git
Erlang.erl .hrl .app.src rebar.config_build .rebar3 .git
Fsharp.fs .fsi .fsx .fsproj .config .slnbin obj .vs packages node_modules .git
Generic.txt .md .json .xml .yaml .yml.git .svn .hg node_modules .vscode .idea
Go.go .mod .sumvendor bin .git
Haskell.hs .lhs .cabal .hs-bootdist dist-newstyle .stack-work .git
Infrastructure.tf .tfvars .yaml .yml .json .md .sh .ps1 .hcl .tpl .env .properties .conf .config.terraform node_modules .git .vs .idea bin obj dist build .pytest_cache __pycache__ tmp temp logs
JavaScript.js .jsx .json .ts .tsx .html .css .scss .less .mjsnode_modules dist build coverage .next .nuxt .git
Java.java .gradle .xml .properties .jar .jsp .jspx .classbuild target .gradle .mvn node_modules .git
Kotlin.kt .kts .java .xml .gradlebuild .gradle .idea .git
Lua.lua .rockspec.git
Perl.pl .pm .tblib _build .git
Php.php .phtml .php7 .phps .php-s .pht .pharvendor node_modules .git
Python.py .pyc .pyd .pyo .pyw .pyx .pxd .pxi .ipynb .req .txt__pycache__ .venv venv env .tox dist build .git .pytest_cache
R.R .Rmd .Rproj .RData .rds.Rproj.user .Rhistory .RData .Ruserdata .git
Ruby.rb .rake .gemspec Gemfile Rakefile .erb .haml .slimvendor .bundle coverage tmp log .git
Rust.rs .toml .locktarget .cargo .git
Scala.scala .sbt .sctarget project/target .bloop .metals .git
Swift.swift .xib .storyboard .xcodeproj .pbxproj .plist.build Pods .git
TypeScript.ts .tsx .js .jsx .json .html .css .scss .lessnode_modules dist build coverage .next .nuxt .git
VbNet.vb .vbproj .config .settings .resx .slnbin obj .vs packages node_modules .git

DotNet Exclusion Patterns

The DotNet template carries a file-pattern exclusion list in addition to its directory exclusions. These patterns drop generated, designer, and lock files that add tokens without adding source the reader needs. A file matching any pattern is excluded even when its extension is in the include list.

The DotNet exclusion patterns are:

CategoryPatterns
Generated source*.g.cs *.g.i.cs *.generated.cs *.Designer.cs *.designer.cs TemporaryGeneratedFile_*.cs *.xsd.cs *_i.c
Test scaffolding*.feature.cs *Steps.g.cs *.AssemblyHooks.cs
Assembly and service metadataAssemblyInfo.cs ServiceReference.cs Reference.cs
Caches and resources*.Cache.cs *.cache *.baml *.resx *.resources
Settings and lock fileslaunchSettings.json packages.lock.json bundleconfig.json package-lock.json yarn.lock
Minified and mapped assets*.min.js *.min.css *.map

The Infrastructure template carries a smaller pattern list of the same kind, excluding Terraform state and plan files (*.tfstate and *.tfplan and their variants).

What This Does Not Cover

This page lists the defaults each template provides; it does not cover the order in which collection applies templates, .gitignore rules, and command-line overrides, which the Core Concepts page describes as the Collection stage. It does not document how to register a new template; the Adding A Template page covers that.

Next

See the Options reference to override a template's extensions for a single run, or the Fusing .NET Code guide for the DotNet template in practice.

On this page