feat: syntax highlighting for cURL and bulk editors

This commit is contained in:
liyasthomas
2021-12-29 08:05:07 +05:30
parent 923c24e3bb
commit a1decaf6ad
34 changed files with 50 additions and 48 deletions

View File

@@ -323,9 +323,9 @@ const bulkHeaders = ref("")
watch(bulkHeaders, () => {
try {
const transformation = bulkHeaders.value.split("\n").map((item) => ({
key: item.substring(0, item.indexOf(":")).trim().replace(/^\/\//, ""),
key: item.substring(0, item.indexOf(":")).trim().replace(/^#/, ""),
value: item.substring(item.indexOf(":") + 1).trim(),
active: !item.trim().startsWith("//"),
active: !item.trim().startsWith("#"),
}))
setGQLHeaders(transformation as GQLHeader[])
} catch (e) {
@@ -414,8 +414,8 @@ const editBulkHeadersLine = (index: number, item?: GQLHeader | null) => {
.reduce((all, header, pIndex) => {
const current =
index === pIndex && item != null
? `${item.active ? "" : "//"}${item.key}: ${item.value}`
: `${header.active ? "" : "//"}${header.key}: ${header.value}`
? `${item.active ? "" : "#"}${item.key}: ${item.value}`
: `${header.active ? "" : "#"}${header.key}: ${header.value}`
return [...all, current]
}, [] as string[])
.join("\n")

View File

@@ -188,9 +188,9 @@ useCodemirror(bulkEditor, bulkHeaders, {
watch(bulkHeaders, () => {
try {
const transformation = bulkHeaders.value.split("\n").map((item) => ({
key: item.substring(0, item.indexOf(":")).trim().replace(/^\/\//, ""),
key: item.substring(0, item.indexOf(":")).trim().replace(/^#/, ""),
value: item.substring(item.indexOf(":") + 1).trim(),
active: !item.trim().startsWith("//"),
active: !item.trim().startsWith("#"),
}))
setRESTHeaders(transformation as HoppRESTHeader[])
} catch (e) {
@@ -218,14 +218,12 @@ watch(
onBeforeUpdate(() => editBulkHeadersLine(-1, null))
const editBulkHeadersLine = (index: number, item?: HoppRESTHeader | null) => {
const headers = headers$.value
bulkHeaders.value = headers
bulkHeaders.value = headers$.value
.reduce((all, header, pIndex) => {
const current =
index === pIndex && item != null
? `${item.active ? "" : "//"}${item.key}: ${item.value}`
: `${header.active ? "" : "//"}${header.key}: ${header.value}`
? `${item.active ? "" : "#"}${item.key}: ${item.value}`
: `${header.active ? "" : "#"}${header.key}: ${header.value}`
return [...all, current]
}, [])
.join("\n")

View File

@@ -169,9 +169,9 @@ const bulkParams = ref("")
watch(bulkParams, () => {
try {
const transformation = bulkParams.value.split("\n").map((item) => ({
key: item.substring(0, item.indexOf(":")).trim().replace(/^\/\//, ""),
key: item.substring(0, item.indexOf(":")).trim().replace(/^#/, ""),
value: item.substring(item.indexOf(":") + 1).trim(),
active: !item.trim().startsWith("//"),
active: !item.trim().startsWith("#"),
}))
setRESTParams(transformation as HoppRESTParam[])
} catch (e) {
@@ -211,14 +211,12 @@ watch(
onBeforeUpdate(() => editBulkParamsLine(-1, null))
const editBulkParamsLine = (index: number, item?: HoppRESTParam | null) => {
const params = params$.value
bulkParams.value = params
bulkParams.value = params$.value
.reduce((all, param, pIndex) => {
const current =
index === pIndex && item != null
? `${item.active ? "" : "//"}${item.key}: ${item.value}`
: `${param.active ? "" : "//"}${param.key}: ${param.value}`
? `${item.active ? "" : "#"}${item.key}: ${item.value}`
: `${param.active ? "" : "#"}${param.key}: ${param.value}`
return [...all, current]
}, [])
.join("\n")

View File

@@ -31,6 +31,8 @@ import { pipe } from "fp-ts/function"
import * as O from "fp-ts/Option"
import { StreamLanguage } from "@codemirror/stream-parser"
import { html } from "@codemirror/legacy-modes/mode/xml"
import { shell } from "@codemirror/legacy-modes/mode/shell"
import { yaml } from "@codemirror/legacy-modes/mode/yaml"
import { isJSONContentType } from "../utils/contenttypes"
import { useStreamSubscriber } from "../utils/composables"
import { Completer } from "./completion"
@@ -136,6 +138,10 @@ const getLanguage = (langMime: string): Language | null => {
return GQLLanguage
} else if (langMime === "htmlmixed") {
return StreamLanguage.define(html)
} else if (langMime === "application/x-sh") {
return StreamLanguage.define(shell)
} else if (langMime === "text/x-yaml") {
return StreamLanguage.define(yaml)
}
// None matched, so return null

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Grootmaatbewerking",
"bulk_mode_placeholder": "Inskrywings word geskei deur nuwe lyn\nSleutels en waardes word geskei deur:\nStel // voor op enige ry wat u wil byvoeg, maar hou dit uitgeskakel",
"bulk_mode_placeholder": "Inskrywings word geskei deur nuwe lyn\nSleutels en waardes word geskei deur:\nStel # voor op enige ry wat u wil byvoeg, maar hou dit uitgeskakel",
"cleared": "Uitgevee",
"connected": "Koppel",
"connected_to": "Gekoppel aan {naam}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "التحرير بالجملة",
"bulk_mode_placeholder": "يتم فصل الإدخالات بواسطة سطر جديد\nالمفاتيح والقيم مفصولة بـ:\nقم بإلحاق // بأي صف تريد إضافته ولكن يظل معطلاً",
"bulk_mode_placeholder": "يتم فصل الإدخالات بواسطة سطر جديد\nالمفاتيح والقيم مفصولة بـ:\nقم بإلحاق # بأي صف تريد إضافته ولكن يظل معطلاً",
"cleared": "مسح",
"connected": "متصل",
"connected_to": "متصل بـ {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Edició massiva",
"bulk_mode_placeholder": "Les entrades estan separades per una nova línia\nLes claus i els valors estan separats per:\nPrepara // a qualsevol fila que vulguis afegir, però continua desactivat",
"bulk_mode_placeholder": "Les entrades estan separades per una nova línia\nLes claus i els valors estan separats per:\nPrepara # a qualsevol fila que vulguis afegir, però continua desactivat",
"cleared": "Esborrat",
"connected": "Connectat",
"connected_to": "Connectat a {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "批量编辑",
"bulk_mode_placeholder": "条目之间使用换行符分隔\n键和值之间使用冒号分隔\n将 // 置于行首以添加该行条目并保持禁用",
"bulk_mode_placeholder": "条目之间使用换行符分隔\n键和值之间使用冒号分隔\n将 # 置于行首以添加该行条目并保持禁用",
"cleared": "已清除",
"connected": "已连接",
"connected_to": "已连接到 {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Hromadná úprava",
"bulk_mode_placeholder": "Záznamy jsou odděleny novým řádkem\nKlíče a hodnoty jsou odděleny:\nPředřadte // do libovolného řádku, který chcete přidat, ale ponechte jej deaktivovaný",
"bulk_mode_placeholder": "Záznamy jsou odděleny novým řádkem\nKlíče a hodnoty jsou odděleny:\nPředřadte # do libovolného řádku, který chcete přidat, ale ponechte jej deaktivovaný",
"cleared": "Vymazáno",
"connected": "Připojeno",
"connected_to": "Připojeno k {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Masseredigering",
"bulk_mode_placeholder": "Indlæg adskilles med ny linje\nNøgler og værdier adskilles af:\nForbered // til enhver række, du vil tilføje, men behold den deaktiveret",
"bulk_mode_placeholder": "Indlæg adskilles med ny linje\nNøgler og værdier adskilles af:\nForbered # til enhver række, du vil tilføje, men behold den deaktiveret",
"cleared": "Ryddet",
"connected": "Tilsluttet",
"connected_to": "Forbundet til {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Bulk-Bearbeitung",
"bulk_mode_placeholder": "Einträge werden durch Zeilenumbruch getrennt\nSchlüssel und Werte werden getrennt durch:\nStellen Sie // jeder Zeile voran, die Sie hinzufügen möchten, aber lassen Sie sie deaktiviert",
"bulk_mode_placeholder": "Einträge werden durch Zeilenumbruch getrennt\nSchlüssel und Werte werden getrennt durch:\nStellen Sie # jeder Zeile voran, die Sie hinzufügen möchten, aber lassen Sie sie deaktiviert",
"cleared": "Gelöscht",
"connected": "In Verbindung gebracht",
"connected_to": "Verbunden mit {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Μαζική επεξεργασία",
"bulk_mode_placeholder": "Οι εγγραφές χωρίζονται με νέα γραμμή\nΤα κλειδιά και οι τιμές διαχωρίζονται με:\nΠροσθήκη // σε οποιαδήποτε γραμμή που θέλετε να προσθέσετε αλλά διατηρήστε απενεργοποιημένη",
"bulk_mode_placeholder": "Οι εγγραφές χωρίζονται με νέα γραμμή\nΤα κλειδιά και οι τιμές διαχωρίζονται με:\nΠροσθήκη # σε οποιαδήποτε γραμμή που θέλετε να προσθέσετε αλλά διατηρήστε απενεργοποιημένη",
"cleared": "Εκκαθαρίστηκε",
"connected": "Συνδεδεμένος",
"connected_to": "Συνδέθηκε με το {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Bulk edit",
"bulk_mode_placeholder": "Entries are separated by newline\nKeys and values are separated by :\nPrepend // to any row you want to add but keep disabled",
"bulk_mode_placeholder": "Entries are separated by newline\nKeys and values are separated by :\nPrepend # to any row you want to add but keep disabled",
"cleared": "Cleared",
"connected": "Connected",
"connected_to": "Connected to {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Edición masiva",
"bulk_mode_placeholder": "Las entradas están separadas por una nueva línea\nLas claves y los valores están separados por:\nAnteponer // a cualquier fila que desee agregar pero mantener deshabilitada",
"bulk_mode_placeholder": "Las entradas están separadas por una nueva línea\nLas claves y los valores están separados por:\nAnteponer # a cualquier fila que desee agregar pero mantener deshabilitada",
"cleared": "Despejado",
"connected": "Conectado",
"connected_to": "Conectado a {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Joukkomuokkaus",
"bulk_mode_placeholder": "Merkinnät erotetaan rivillä\nAvaimet ja arvot erotetaan toisistaan:\nEsitä // mihin tahansa riviin, jonka haluat lisätä, mutta pidä poissa käytöstä",
"bulk_mode_placeholder": "Merkinnät erotetaan rivillä\nAvaimet ja arvot erotetaan toisistaan:\nEsitä # mihin tahansa riviin, jonka haluat lisätä, mutta pidä poissa käytöstä",
"cleared": "Selvitetty",
"connected": "Yhdistetty",
"connected_to": "Yhdistetty kohteeseen {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Modification groupée",
"bulk_mode_placeholder": "Les entrées sont séparées par une nouvelle ligne\nLes clés et les valeurs sont séparées par :\nAjoutez // à n'importe quelle ligne que vous souhaitez ajouter mais garder désactivée",
"bulk_mode_placeholder": "Les entrées sont séparées par une nouvelle ligne\nLes clés et les valeurs sont séparées par :\nAjoutez # à n'importe quelle ligne que vous souhaitez ajouter mais garder désactivée",
"cleared": "Effacé",
"connected": "Connecté",
"connected_to": "Connecté à {nom}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "עריכה בכמות גדולה",
"bulk_mode_placeholder": "הערכים מופרדים באמצעות שורה חדשה\nמפתחות וערכים מופרדים על ידי:\nהזינו // לכל שורה שתרצו להוסיף אך תשמרו",
"bulk_mode_placeholder": "הערכים מופרדים באמצעות שורה חדשה\nמפתחות וערכים מופרדים על ידי:\nהזינו # לכל שורה שתרצו להוסיף אך תשמרו",
"cleared": "מְבוּעָר",
"connected": "מְחוּבָּר",
"connected_to": "מחובר אל {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Tömeges szerkesztés",
"bulk_mode_placeholder": "A bejegyzéseket új sor választja el\nA kulcsokat és az értékeket a következők választják el egymástól:\nElőtag // bármelyik sorhoz, amelyet hozzá szeretne adni, de továbbra is letiltva",
"bulk_mode_placeholder": "A bejegyzéseket új sor választja el\nA kulcsokat és az értékeket a következők választják el egymástól:\nElőtag # bármelyik sorhoz, amelyet hozzá szeretne adni, de továbbra is letiltva",
"cleared": "Törölt",
"connected": "csatlakoztatva",
"connected_to": "Összekapcsolva a következővel: {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Modifica in blocco",
"bulk_mode_placeholder": "Le voci sono separate tramite Invio\nChiavi e valori sono separati da:\nAnteponi // a qualsiasi riga che desideri aggiungere ma lasciare disabilitata",
"bulk_mode_placeholder": "Le voci sono separate tramite Invio\nChiavi e valori sono separati da:\nAnteponi # a qualsiasi riga che desideri aggiungere ma lasciare disabilitata",
"cleared": "Cancellato",
"connected": "Connesso",
"connected_to": "Connesso a {nome}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "一括編集",
"bulk_mode_placeholder": "エントリは改行で区切られます\nキーと値は次のように区切られます。\n追加する行の前に//を追加しますが、無効のままにします",
"bulk_mode_placeholder": "エントリは改行で区切られます\nキーと値は次のように区切られます。\n追加する行の前に#を追加しますが、無効のままにします",
"cleared": "クリア",
"connected": "接続済み",
"connected_to": "{名前}に接続しました",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "일괄 수정",
"bulk_mode_placeholder": "항목은 줄 바꿈으로 구분됩니다.\n키와 값은 다음으로 구분됩니다.\n// 추가하고 싶지만 비활성화된 상태로 유지되는 행에 추가",
"bulk_mode_placeholder": "항목은 줄 바꿈으로 구분됩니다.\n키와 값은 다음으로 구분됩니다.\n# 추가하고 싶지만 비활성화된 상태로 유지되는 행에 추가",
"cleared": "클리어",
"connected": "연결됨",
"connected_to": "{name}에 연결됨",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Bulkbewerking",
"bulk_mode_placeholder": "Invoer wordt gescheiden door een nieuwe regel\nSleutels en waarden worden gescheiden door:\nVoeg // toe aan elke rij die u wilt toevoegen, maar blijf uitgeschakeld",
"bulk_mode_placeholder": "Invoer wordt gescheiden door een nieuwe regel\nSleutels en waarden worden gescheiden door:\nVoeg # toe aan elke rij die u wilt toevoegen, maar blijf uitgeschakeld",
"cleared": "gewist",
"connected": "Verbonden",
"connected_to": "Verbonden met {naam}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Masse redigering",
"bulk_mode_placeholder": "Oppføringer skilles med ny linje\nNøkler og verdier er atskilt med:\nForbered // til hvilken som helst rad du vil legge til, men behold den deaktivert",
"bulk_mode_placeholder": "Oppføringer skilles med ny linje\nNøkler og verdier er atskilt med:\nForbered # til hvilken som helst rad du vil legge til, men behold den deaktivert",
"cleared": "Ryddet",
"connected": "Tilkoblet",
"connected_to": "Koblet til {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Edycja zbiorcza",
"bulk_mode_placeholder": "Wpisy są oddzielone znakiem nowej linii\nKlucze i wartości są oddzielone:\nDołącz // do dowolnego wiersza, który chcesz dodać, ale pozostaw wyłączony",
"bulk_mode_placeholder": "Wpisy są oddzielone znakiem nowej linii\nKlucze i wartości są oddzielone:\nDołącz # do dowolnego wiersza, który chcesz dodać, ale pozostaw wyłączony",
"cleared": "Wyczyszczono",
"connected": "Połączony",
"connected_to": "Połączony z {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Edição em massa",
"bulk_mode_placeholder": "As entradas são separadas por nova linha\nChaves e valores são separados por:\nAnexar // a qualquer linha que você deseja adicionar, mas manter desativado",
"bulk_mode_placeholder": "As entradas são separadas por nova linha\nChaves e valores são separados por:\nAnexar # a qualquer linha que você deseja adicionar, mas manter desativado",
"cleared": "Liberado",
"connected": "Conectado",
"connected_to": "Conectado a {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Edição em massa",
"bulk_mode_placeholder": "As entradas são separadas por nova linha\nChaves e valores são separados por:\nAnexar // a qualquer linha que você deseja adicionar, mas manter desativado",
"bulk_mode_placeholder": "As entradas são separadas por nova linha\nChaves e valores são separados por:\nAnexar # a qualquer linha que você deseja adicionar, mas manter desativado",
"cleared": "Liberado",
"connected": "Conectado",
"connected_to": "Conectado a {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Editare în bloc",
"bulk_mode_placeholder": "Intrările sunt separate prin linie nouă\nCheile și valorile sunt separate prin:\nPrepend // la orice rând pe care doriți să îl adăugați, dar păstrați-l dezactivat",
"bulk_mode_placeholder": "Intrările sunt separate prin linie nouă\nCheile și valorile sunt separate prin:\nPrepend # la orice rând pe care doriți să îl adăugați, dar păstrați-l dezactivat",
"cleared": "Eliminat",
"connected": "Conectat",
"connected_to": "Conectat la {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Bulk edit",
"bulk_mode_placeholder": "Entries are separated by newline\nKeys and values are separated by :\nPrepend // to any row you want to add but keep disabled",
"bulk_mode_placeholder": "Entries are separated by newline\nKeys and values are separated by :\nPrepend # to any row you want to add but keep disabled",
"cleared": "Очищено",
"connected": "Связаны",
"connected_to": "Подключено к {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Скупно уређивање",
"bulk_mode_placeholder": "Уноси су одвојени новим редом\nКључеви и вредности су одвојени:\nДодати // било ком реду који желите да додате, али га онемогућите",
"bulk_mode_placeholder": "Уноси су одвојени новим редом\nКључеви и вредности су одвојени:\nДодати # било ком реду који желите да додате, али га онемогућите",
"cleared": "Очишћено",
"connected": "Повезан",
"connected_to": "Повезано са {наме}",

View File

@@ -444,7 +444,7 @@
},
"state": {
"bulk_mode": "Massredigering",
"bulk_mode_placeholder": "Posterna separeras med ny rad\nNycklar och värden separeras med:\nFörbered // till vilken rad du vill lägga till men behåll inaktiverad",
"bulk_mode_placeholder": "Posterna separeras med ny rad\nNycklar och värden separeras med:\nFörbered # till vilken rad du vill lägga till men behåll inaktiverad",
"cleared": "Rensat",
"connected": "Ansluten",
"connected_to": "Ansluten till {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Toplu düzenleme",
"bulk_mode_placeholder": "Girişler yeni satırla ayrılır\nAnahtarlar ve değerler şu şekilde ayrılır:\nEklemek istediğiniz ancak devre dışı bırakmak istediğiniz herhangi bir satırın başına // ekleyin",
"bulk_mode_placeholder": "Girişler yeni satırla ayrılır\nAnahtarlar ve değerler şu şekilde ayrılır:\nEklemek istediğiniz ancak devre dışı bırakmak istediğiniz herhangi bir satırın başına # ekleyin",
"cleared": "Temizlendi",
"connected": "bağlı",
"connected_to": "{name} ile bağlantılı",

View File

@@ -444,7 +444,7 @@
},
"state": {
"bulk_mode": "大量編輯",
"bulk_mode_placeholder": "條目之間使用換行符分隔\n鍵和值之間使用冒號分隔\n將 // 置於行首以新增該行條目並保持停用",
"bulk_mode_placeholder": "條目之間使用換行符分隔\n鍵和值之間使用冒號分隔\n將 # 置於行首以新增該行條目並保持停用",
"cleared": "已清除",
"connected": "已連線",
"connected_to": "已連線到 {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Масове редагування",
"bulk_mode_placeholder": "Записи розділені новим рядком\nКлючі та значення розділені:\nДодати // до будь -якого рядка, який потрібно додати, але залишити вимкненим",
"bulk_mode_placeholder": "Записи розділені новим рядком\nКлючі та значення розділені:\nДодати # до будь -якого рядка, який потрібно додати, але залишити вимкненим",
"cleared": "Очищено",
"connected": "Підключено",
"connected_to": "Підключено до {name}",

View File

@@ -447,7 +447,7 @@
},
"state": {
"bulk_mode": "Chỉnh sửa hàng loạt",
"bulk_mode_placeholder": "Các mục nhập được phân tách bằng dòng mới\nCác khóa và giá trị được phân tách bằng:\nThêm // vào bất kỳ hàng nào bạn muốn thêm nhưng vẫn bị vô hiệu hóa",
"bulk_mode_placeholder": "Các mục nhập được phân tách bằng dòng mới\nCác khóa và giá trị được phân tách bằng:\nThêm # vào bất kỳ hàng nào bạn muốn thêm nhưng vẫn bị vô hiệu hóa",
"cleared": "Đã xóa",
"connected": "Đã kết nối",
"connected_to": "Đã kết nối với {name}",