Skip to content

Add ignorable glob support#1256

Open
EgoMoose wants to merge 1 commit into
rojo-rbx:masterfrom
EgoMoose:add-ignorable-glob-support
Open

Add ignorable glob support#1256
EgoMoose wants to merge 1 commit into
rojo-rbx:masterfrom
EgoMoose:add-ignorable-glob-support

Conversation

@EgoMoose
Copy link
Copy Markdown
Contributor

@EgoMoose EgoMoose commented May 5, 2026

This PR changes globIgnorePaths such that it now supports gitignore-style negation: a leading ! re-includes paths matched by an earlier glob. The last matching pattern in the list determines whether a path is ignored. Use \! to match a literal ! at the start of a pattern.

This should be backwards compatible with existing projects as opposed to adding something akin to extended globbing.

This makes it possible to do things like have a single source folder which contains both your client and server code, but be able to sync those code paths to separate locations.

You can still use existing glob ignore path functionality:

{
	"name": "client-src",
	"globIgnorePaths": [
		"**/*Server.{lua,luau}"
	],
	"tree": {
		"$path": "src"
	}
}

Or you can use the new negation feature:

{
	"name": "server-src",
	"globIgnorePaths": [
		"**/*.{lua,luau}",
		"!**/*Server.{lua,luau}"
	],
	"tree": {
		"$path": "src"
	}
}

Using these together you can do some pretty useful things when syncing:

{
	"name": "example",
	"tree": {
		"$className": "DataModel",
		"ReplicatedStorage": {
			"$className": "ReplicatedStorage",
			"ClientSource": {
				"$path": "client-src.project.json"
			}
		},
		"ServerScriptService": {
			"$className": "ServerScriptService",
			"ServerSource": {
				"$path": "server-src.project.json"
			}
		}
	}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant