src/Tools/VSCode/patches/isabelle_encoding.patch
author wenzelm
Tue, 08 Mar 2022 17:02:24 +0100
changeset 75246 f32e5d4cf1a3
permissions -rw-r--r--
patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
75246
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
     1
diff --git a/src/vs/workbench/services/textfile/common/encoding.ts b/src/vs/workbench/services/textfile/common/encoding.ts
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
     2
--- a/src/vs/workbench/services/textfile/common/encoding.ts
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
     3
+++ b/src/vs/workbench/services/textfile/common/encoding.ts
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
     4
@@ -6,6 +6,7 @@
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
     5
 import { Readable, ReadableStream, newWriteableStream, listenStream } from 'vs/base/common/stream';
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
     6
 import { VSBuffer, VSBufferReadable, VSBufferReadableStream } from 'vs/base/common/buffer';
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
     7
 import { IDisposable } from 'vs/base/common/lifecycle';
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
     8
+import * as isabelle_encoding from './isabelle_encoding';
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
     9
 
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    10
 export const UTF8 = 'utf8';
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    11
 export const UTF8_with_bom = 'utf8bom';
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    12
@@ -78,7 +79,9 @@ class DecoderStream implements IDecoderStream {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    13
 	 */
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    14
 	static async create(encoding: string): Promise<DecoderStream> {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    15
 		let decoder: IDecoderStream | undefined = undefined;
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    16
-		if (encoding !== UTF8) {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    17
+		if (encoding === isabelle_encoding.ENCODING) {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    18
+			decoder = isabelle_encoding.getDecoder();
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    19
+		} else if (encoding !== UTF8) {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    20
 			const iconv = await import('@vscode/iconv-lite-umd');
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    21
 			decoder = iconv.getDecoder(toNodeEncoding(encoding));
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    22
 		} else {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    23
@@ -212,7 +215,9 @@ export function toDecodeStream(source: VSBufferReadableStream, options: IDecodeS
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    24
 
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    25
 export async function toEncodeReadable(readable: Readable<string>, encoding: string, options?: { addBOM?: boolean }): Promise<VSBufferReadable> {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    26
 	const iconv = await import('@vscode/iconv-lite-umd');
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    27
-	const encoder = iconv.getEncoder(toNodeEncoding(encoding), options);
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    28
+	const encoder =
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    29
+		encoding === isabelle_encoding.ENCODING ?
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    30
+			isabelle_encoding.getEncoder() : iconv.getEncoder(toNodeEncoding(encoding), options);
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    31
 
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    32
 	let bytesWritten = false;
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    33
 	let done = false;
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    34
@@ -262,7 +267,7 @@ export async function toEncodeReadable(readable: Readable<string>, encoding: str
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    35
 export async function encodingExists(encoding: string): Promise<boolean> {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    36
 	const iconv = await import('@vscode/iconv-lite-umd');
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    37
 
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    38
-	return iconv.encodingExists(toNodeEncoding(encoding));
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    39
+	return encoding === isabelle_encoding.ENCODING || iconv.encodingExists(toNodeEncoding(encoding));
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    40
 }
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    41
 
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    42
 export function toNodeEncoding(enc: string | null): string {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    43
@@ -479,6 +484,11 @@ export function detectEncodingFromBuffer({ buffer, bytesRead }: IReadResult, aut
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    44
 }
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    45
 
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    46
 export const SUPPORTED_ENCODINGS: { [encoding: string]: { labelLong: string; labelShort: string; order: number; encodeOnly?: boolean; alias?: string } } = {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    47
+	utf8isabelle: {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    48
+		labelLong: isabelle_encoding.LABEL,
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    49
+		labelShort: isabelle_encoding.LABEL,
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    50
+		order: 0,
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    51
+	},
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    52
 	utf8: {
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    53
 		labelLong: 'UTF-8',
f32e5d4cf1a3 patch for vscode encoding "UTF-8-Isabelle": clone of "utf8", no symbols yet;
wenzelm
parents:
diff changeset
    54
 		labelShort: 'UTF-8',