From 8f2f47504345c654785fdeba2379984e052af13a Mon Sep 17 00:00:00 2001
From: ewin <git@ewin.moe>
Date: Mon, 10 Mar 2025 00:58:38 -0400
Subject: [PATCH] put all the type definitions in the same place

---
 grammar.mts | 6 +-----
 util.mts    | 8 ++++++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/grammar.mts b/grammar.mts
index 60a1898..30b289b 100644
--- a/grammar.mts
+++ b/grammar.mts
@@ -1,13 +1,9 @@
 import {IRawGrammar} from 'vscode-textmate';
+import {type Overwrite} from './util.mts';
 
 // vscode-textmate doesn't expose anything else so fine we'll do it ourselves
 
 type AllOptionalWritable<T> = { -readonly [K in keyof T]?: T[K] };
-export type Overwrite<T, U> = {
-	[K in keyof (T & U)]: K extends keyof U ? U[K]
-		: K extends keyof T ? T[K]
-		: never;
-};
 type RemoveLocation<T> = Omit<T, '$vscodeTextmateLocation'>;
 
 type Cleanup<T, Overrides = unknown> = AllOptionalWritable<
diff --git a/util.mts b/util.mts
index bc4d781..e067173 100644
--- a/util.mts
+++ b/util.mts
@@ -1,6 +1,10 @@
-import {Overwrite} from './grammar.mts';
+export type Overwrite<T, U> = {
+	[K in keyof (T & U)]: K extends keyof U ? U[K]
+		: K extends keyof T ? T[K]
+		: never;
+};
 
-type AllMerged<Objects extends any[]> = Objects extends
+export type AllMerged<Objects extends any[]> = Objects extends
 	[infer T, infer U, ...infer Rest] ? AllMerged<[Overwrite<T, U>, ...Rest]>
 	: Objects extends [infer T, ...infer Rest] ? T
 	: Objects extends (infer Rest)[] ? Rest