fix(files): scope preview defaults to previewable files
This commit is contained in:
@@ -2322,10 +2322,14 @@ export const FilesView: React.FC<FilesViewProps> = ({ mode = 'full' }) => {
|
|||||||
const canEdit = Boolean(selectedFile && !selectedFileIsOutsideWorkspace && !isSelectedImage && !isSelectedPdf && files.writeFile && fileContent.length <= MAX_VIEW_CHARS);
|
const canEdit = Boolean(selectedFile && !selectedFileIsOutsideWorkspace && !isSelectedImage && !isSelectedPdf && files.writeFile && fileContent.length <= MAX_VIEW_CHARS);
|
||||||
const isMarkdown = Boolean(selectedFile?.path && isMarkdownFile(selectedFile.path));
|
const isMarkdown = Boolean(selectedFile?.path && isMarkdownFile(selectedFile.path));
|
||||||
const isJson = Boolean(selectedFile?.path && isJsonFile(selectedFile.path));
|
const isJson = Boolean(selectedFile?.path && isJsonFile(selectedFile.path));
|
||||||
const isHtml = Boolean(selectedFile?.path && isHtmlFile(selectedFile.path));
|
const isHtml = Boolean(selectedFile?.path && isHtmlFile(selectedFile.path));
|
||||||
const isDrawio = Boolean(selectedFile?.path && isDrawioFile(selectedFile.path));
|
const isDrawio = Boolean(selectedFile?.path && isDrawioFile(selectedFile.path));
|
||||||
const isTextFile = Boolean(selectedFile && !isSelectedImage && !isSelectedPdf);
|
const isTextFile = Boolean(selectedFile && !isSelectedImage && !isSelectedPdf);
|
||||||
const canUseShikiFileView = isTextFile && !isMarkdown && !isDrawio && !(isHtml && htmlViewMode === 'preview');
|
const canUseShikiFileView = isTextFile && !isMarkdown && !isDrawio && !(isHtml && htmlViewMode === 'preview');
|
||||||
|
const isEditingFile = (isMarkdown && mdViewMode === 'edit')
|
||||||
|
|| (isHtml && htmlViewMode === 'edit')
|
||||||
|
|| (isJson && jsonViewMode === 'text')
|
||||||
|
|| (!isMarkdown && !isHtml && !isJson && textViewMode === 'edit');
|
||||||
const staticLanguageExtension = React.useMemo(
|
const staticLanguageExtension = React.useMemo(
|
||||||
() => (selectedFilePath ? languageByExtension(selectedFilePath) : null),
|
() => (selectedFilePath ? languageByExtension(selectedFilePath) : null),
|
||||||
[selectedFilePath],
|
[selectedFilePath],
|
||||||
@@ -2369,8 +2373,7 @@ export const FilesView: React.FC<FilesViewProps> = ({ mode = 'full' }) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const defaultMode: TextViewMode = settingsDefaultFileViewerPreview ? 'view' : 'edit';
|
setTextViewMode(textViewModeByPathRef.current[selectedPath] ?? 'edit');
|
||||||
setTextViewMode(textViewModeByPathRef.current[selectedPath] ?? defaultMode);
|
|
||||||
|
|
||||||
// Respect per-type localStorage preference when available,
|
// Respect per-type localStorage preference when available,
|
||||||
// falling back to the setting-derived default when nothing is stored.
|
// falling back to the setting-derived default when nothing is stored.
|
||||||
@@ -2395,7 +2398,7 @@ export const FilesView: React.FC<FilesViewProps> = ({ mode = 'full' }) => {
|
|||||||
// Ignore localStorage errors
|
// Ignore localStorage errors
|
||||||
}
|
}
|
||||||
setHtmlViewMode(htmlViewModeByPathRef.current[selectedPath] ?? htmlDefault);
|
setHtmlViewMode(htmlViewModeByPathRef.current[selectedPath] ?? htmlDefault);
|
||||||
setDrawioViewMode(drawioViewModeByPathRef.current[selectedPath] ?? 'preview');
|
setDrawioViewMode(drawioViewModeByPathRef.current[selectedPath] ?? (settingsDefaultFileViewerPreview ? 'preview' : 'edit'));
|
||||||
|
|
||||||
let jsonDefault: 'tree' | 'text' = settingsDefaultFileViewerPreview ? 'tree' : 'text';
|
let jsonDefault: 'tree' | 'text' = settingsDefaultFileViewerPreview ? 'tree' : 'text';
|
||||||
try {
|
try {
|
||||||
@@ -2559,25 +2562,28 @@ export const FilesView: React.FC<FilesViewProps> = ({ mode = 'full' }) => {
|
|||||||
}, [htmlViewMode]);
|
}, [htmlViewMode]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
const applyDefaultFileViewerMode = (enabled: boolean) => {
|
const applyDefaultFileViewerMode = (enabled: boolean) => {
|
||||||
const textMode: TextViewMode = enabled ? 'view' : 'edit';
|
const previewMode: PreviewViewMode = enabled ? 'preview' : 'edit';
|
||||||
const previewMode: PreviewViewMode = enabled ? 'preview' : 'edit';
|
const nextJsonMode: 'tree' | 'text' = enabled ? 'tree' : 'text';
|
||||||
const nextJsonMode: 'tree' | 'text' = enabled ? 'tree' : 'text';
|
|
||||||
|
for (const path of openPaths) {
|
||||||
for (const path of openPaths) {
|
textViewModeByPathRef.current[path] = 'edit';
|
||||||
textViewModeByPathRef.current[path] = textMode;
|
if (isMarkdownFile(path)) {
|
||||||
if (isMarkdownFile(path)) {
|
mdViewModeByPathRef.current[path] = previewMode;
|
||||||
mdViewModeByPathRef.current[path] = previewMode;
|
}
|
||||||
}
|
if (isHtmlFile(path)) {
|
||||||
if (isHtmlFile(path)) {
|
htmlViewModeByPathRef.current[path] = previewMode;
|
||||||
htmlViewModeByPathRef.current[path] = previewMode;
|
}
|
||||||
}
|
if (isDrawioFile(path)) {
|
||||||
}
|
drawioViewModeByPathRef.current[path] = previewMode;
|
||||||
|
}
|
||||||
setTextViewMode(textMode);
|
}
|
||||||
setMdViewMode(previewMode);
|
|
||||||
setHtmlViewMode(previewMode);
|
setTextViewMode('edit');
|
||||||
setJsonViewMode(nextJsonMode);
|
setMdViewMode(previewMode);
|
||||||
|
setHtmlViewMode(previewMode);
|
||||||
|
setDrawioViewMode(previewMode);
|
||||||
|
setJsonViewMode(nextJsonMode);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
localStorage.setItem(MD_VIEWER_MODE_KEY, previewMode);
|
localStorage.setItem(MD_VIEWER_MODE_KEY, previewMode);
|
||||||
@@ -3152,7 +3158,7 @@ export const FilesView: React.FC<FilesViewProps> = ({ mode = 'full' }) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={wrapperCls}>
|
<div className={wrapperCls}>
|
||||||
{canEdit && textViewMode === 'edit' && (
|
{canEdit && isEditingFile && (
|
||||||
<>
|
<>
|
||||||
{isSaving ? (
|
{isSaving ? (
|
||||||
<span className="flex items-center gap-1 px-1 text-muted-foreground typography-meta">
|
<span className="flex items-center gap-1 px-1 text-muted-foreground typography-meta">
|
||||||
@@ -3733,10 +3739,6 @@ export const FilesView: React.FC<FilesViewProps> = ({ mode = 'full' }) => {
|
|||||||
<div
|
<div
|
||||||
ref={floatingToolbarRef}
|
ref={floatingToolbarRef}
|
||||||
className="absolute right-3 top-3 z-30"
|
className="absolute right-3 top-3 z-30"
|
||||||
onMouseEnter={() => {
|
|
||||||
if (isMarkdown) return;
|
|
||||||
setIsFloatingToolbarOpen(true);
|
|
||||||
}}
|
|
||||||
onMouseLeave={() => {
|
onMouseLeave={() => {
|
||||||
if (toolbarDropdownOpenCountRef.current > 0) return;
|
if (toolbarDropdownOpenCountRef.current > 0) return;
|
||||||
setIsFloatingToolbarOpen(false);
|
setIsFloatingToolbarOpen(false);
|
||||||
@@ -3774,7 +3776,10 @@ export const FilesView: React.FC<FilesViewProps> = ({ mode = 'full' }) => {
|
|||||||
) : null}
|
) : null}
|
||||||
<Tooltip>
|
<Tooltip>
|
||||||
<TooltipTrigger asChild>
|
<TooltipTrigger asChild>
|
||||||
<span className="inline-flex">
|
<span
|
||||||
|
className="inline-flex"
|
||||||
|
onMouseEnter={() => setIsFloatingToolbarOpen(true)}
|
||||||
|
>
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
size="sm"
|
size="sm"
|
||||||
|
|||||||
@@ -1484,8 +1484,8 @@ export const settingsDict = {
|
|||||||
'settings.openchamber.defaults.smallModel.useDefault': 'Use default small model',
|
'settings.openchamber.defaults.smallModel.useDefault': 'Use default small model',
|
||||||
'settings.openchamber.defaults.smallModel.useDefaultAria': 'Use default small model',
|
'settings.openchamber.defaults.smallModel.useDefaultAria': 'Use default small model',
|
||||||
'settings.openchamber.defaults.smallModel.overrideModel': 'Override model',
|
'settings.openchamber.defaults.smallModel.overrideModel': 'Override model',
|
||||||
'settings.openchamber.defaults.field.openFilesPreviewAria': 'Open files in preview mode',
|
'settings.openchamber.defaults.field.openFilesPreviewAria': 'Open previewable files in preview mode',
|
||||||
'settings.openchamber.defaults.field.openFilesPreview': 'Open files in preview mode',
|
'settings.openchamber.defaults.field.openFilesPreview': 'Open previewable files in preview mode',
|
||||||
'settings.openchamber.defaults.option.default': 'Default',
|
'settings.openchamber.defaults.option.default': 'Default',
|
||||||
'settings.openchamber.defaults.option.defaultLowercase': 'default',
|
'settings.openchamber.defaults.option.defaultLowercase': 'default',
|
||||||
'settings.openchamber.git.title': 'Git Preferences',
|
'settings.openchamber.git.title': 'Git Preferences',
|
||||||
|
|||||||
@@ -1451,8 +1451,8 @@ export const settingsDict = {
|
|||||||
"settings.openchamber.defaults.smallModel.useDefaultAria": "Usar el modelo pequeño predeterminado",
|
"settings.openchamber.defaults.smallModel.useDefaultAria": "Usar el modelo pequeño predeterminado",
|
||||||
"settings.openchamber.defaults.smallModel.overrideModel": "Modelo de anulación",
|
"settings.openchamber.defaults.smallModel.overrideModel": "Modelo de anulación",
|
||||||
"settings.openchamber.defaults.field.showDeletionDialog": "Mostrar diálogo de eliminación",
|
"settings.openchamber.defaults.field.showDeletionDialog": "Mostrar diálogo de eliminación",
|
||||||
"settings.openchamber.defaults.field.openFilesPreviewAria": "Abrir archivos en modo vista previa",
|
"settings.openchamber.defaults.field.openFilesPreviewAria": "Abrir archivos previsualizables en modo vista previa",
|
||||||
"settings.openchamber.defaults.field.openFilesPreview": "Abrir archivos en modo vista previa",
|
"settings.openchamber.defaults.field.openFilesPreview": "Abrir archivos previsualizables en modo vista previa",
|
||||||
"settings.openchamber.defaults.option.default": "Predeterminado",
|
"settings.openchamber.defaults.option.default": "Predeterminado",
|
||||||
"settings.openchamber.defaults.option.defaultLowercase": "default",
|
"settings.openchamber.defaults.option.defaultLowercase": "default",
|
||||||
"settings.openchamber.git.title": "Preferencias de Git",
|
"settings.openchamber.git.title": "Preferencias de Git",
|
||||||
|
|||||||
@@ -1376,8 +1376,8 @@ export const settingsDict = {
|
|||||||
'settings.openchamber.defaults.smallModel.useDefaultAria': 'Utiliser le petit modèle par défaut',
|
'settings.openchamber.defaults.smallModel.useDefaultAria': 'Utiliser le petit modèle par défaut',
|
||||||
'settings.openchamber.defaults.smallModel.overrideModel': 'Modèle de remplacement',
|
'settings.openchamber.defaults.smallModel.overrideModel': 'Modèle de remplacement',
|
||||||
'settings.openchamber.defaults.field.showDeletionDialog': 'Afficher la boîte de dialogue de suppression',
|
'settings.openchamber.defaults.field.showDeletionDialog': 'Afficher la boîte de dialogue de suppression',
|
||||||
'settings.openchamber.defaults.field.openFilesPreviewAria': 'Ouvrir les fichiers en mode aperçu',
|
'settings.openchamber.defaults.field.openFilesPreviewAria': 'Ouvrir les fichiers prévisualisables en mode aperçu',
|
||||||
'settings.openchamber.defaults.field.openFilesPreview': 'Ouvrir les fichiers en mode aperçu',
|
'settings.openchamber.defaults.field.openFilesPreview': 'Ouvrir les fichiers prévisualisables en mode aperçu',
|
||||||
'settings.openchamber.defaults.option.default': 'Défaut',
|
'settings.openchamber.defaults.option.default': 'Défaut',
|
||||||
'settings.openchamber.defaults.option.defaultLowercase': 'défaut',
|
'settings.openchamber.defaults.option.defaultLowercase': 'défaut',
|
||||||
'settings.openchamber.git.title': 'Préférences Git',
|
'settings.openchamber.git.title': 'Préférences Git',
|
||||||
|
|||||||
@@ -1484,8 +1484,8 @@ export const settingsDict = {
|
|||||||
'settings.openchamber.defaults.smallModel.useDefaultAria': 'デフォルトの小型モデルを使用',
|
'settings.openchamber.defaults.smallModel.useDefaultAria': 'デフォルトの小型モデルを使用',
|
||||||
'settings.openchamber.defaults.smallModel.overrideModel': '上書きモデル',
|
'settings.openchamber.defaults.smallModel.overrideModel': '上書きモデル',
|
||||||
'settings.openchamber.defaults.field.showDeletionDialog': '削除ダイアログを表示',
|
'settings.openchamber.defaults.field.showDeletionDialog': '削除ダイアログを表示',
|
||||||
'settings.openchamber.defaults.field.openFilesPreviewAria': 'ファイルをプレビューモードで開く',
|
'settings.openchamber.defaults.field.openFilesPreviewAria': 'プレビュー可能なファイルをプレビューモードで開く',
|
||||||
'settings.openchamber.defaults.field.openFilesPreview': 'ファイルをプレビューモードで開く',
|
'settings.openchamber.defaults.field.openFilesPreview': 'プレビュー可能なファイルをプレビューモードで開く',
|
||||||
'settings.openchamber.defaults.option.default': 'デフォルト',
|
'settings.openchamber.defaults.option.default': 'デフォルト',
|
||||||
'settings.openchamber.defaults.option.defaultLowercase': 'デフォルト',
|
'settings.openchamber.defaults.option.defaultLowercase': 'デフォルト',
|
||||||
'settings.openchamber.git.title': 'Git 設定',
|
'settings.openchamber.git.title': 'Git 設定',
|
||||||
|
|||||||
@@ -1451,8 +1451,8 @@ export const settingsDict = {
|
|||||||
'settings.openchamber.defaults.smallModel.useDefaultAria': '기본 소형 모델 사용',
|
'settings.openchamber.defaults.smallModel.useDefaultAria': '기본 소형 모델 사용',
|
||||||
'settings.openchamber.defaults.smallModel.overrideModel': '재정의 모델',
|
'settings.openchamber.defaults.smallModel.overrideModel': '재정의 모델',
|
||||||
'settings.openchamber.defaults.field.showDeletionDialog': '삭제 확인 대화상자 표시',
|
'settings.openchamber.defaults.field.showDeletionDialog': '삭제 확인 대화상자 표시',
|
||||||
'settings.openchamber.defaults.field.openFilesPreviewAria': '파일을 미리보기 모드로 열기',
|
'settings.openchamber.defaults.field.openFilesPreviewAria': '미리보기 가능한 파일을 미리보기 모드로 열기',
|
||||||
'settings.openchamber.defaults.field.openFilesPreview': '파일을 미리보기 모드로 열기',
|
'settings.openchamber.defaults.field.openFilesPreview': '미리보기 가능한 파일을 미리보기 모드로 열기',
|
||||||
'settings.openchamber.defaults.option.default': '기본값',
|
'settings.openchamber.defaults.option.default': '기본값',
|
||||||
'settings.openchamber.defaults.option.defaultLowercase': '기본값',
|
'settings.openchamber.defaults.option.defaultLowercase': '기본값',
|
||||||
'settings.openchamber.git.title': 'Git',
|
'settings.openchamber.git.title': 'Git',
|
||||||
|
|||||||
@@ -692,8 +692,8 @@ export const settingsDict = {
|
|||||||
'settings.openchamber.defaults.field.defaultAgent': 'Domyślny Agent',
|
'settings.openchamber.defaults.field.defaultAgent': 'Domyślny Agent',
|
||||||
'settings.openchamber.defaults.field.defaultModel': 'Domyślny Model',
|
'settings.openchamber.defaults.field.defaultModel': 'Domyślny Model',
|
||||||
'settings.openchamber.defaults.field.defaultThinking': 'Domyślne Myślenie',
|
'settings.openchamber.defaults.field.defaultThinking': 'Domyślne Myślenie',
|
||||||
'settings.openchamber.defaults.field.openFilesPreview': 'Otwieraj pliki w trybie podglądu',
|
'settings.openchamber.defaults.field.openFilesPreview': 'Otwieraj pliki z podglądem w trybie podglądu',
|
||||||
'settings.openchamber.defaults.field.openFilesPreviewAria': 'Otwieraj pliki w trybie podglądu',
|
'settings.openchamber.defaults.field.openFilesPreviewAria': 'Otwieraj pliki z podglądem w trybie podglądu',
|
||||||
'settings.openchamber.defaults.field.showDeletionDialog': 'Pokaż dialog usuwania',
|
'settings.openchamber.defaults.field.showDeletionDialog': 'Pokaż dialog usuwania',
|
||||||
'settings.openchamber.defaults.field.showDeletionDialogAria': 'Pokaż dialog usuwania',
|
'settings.openchamber.defaults.field.showDeletionDialogAria': 'Pokaż dialog usuwania',
|
||||||
'settings.openchamber.defaults.smallModel.title': 'Mały model',
|
'settings.openchamber.defaults.smallModel.title': 'Mały model',
|
||||||
|
|||||||
@@ -1451,8 +1451,8 @@ export const settingsDict = {
|
|||||||
"settings.openchamber.defaults.smallModel.useDefaultAria": "Usar o modelo pequeno padrão",
|
"settings.openchamber.defaults.smallModel.useDefaultAria": "Usar o modelo pequeno padrão",
|
||||||
"settings.openchamber.defaults.smallModel.overrideModel": "Modelo de substituição",
|
"settings.openchamber.defaults.smallModel.overrideModel": "Modelo de substituição",
|
||||||
"settings.openchamber.defaults.field.showDeletionDialog": "Mostrar diálogo de eliminación",
|
"settings.openchamber.defaults.field.showDeletionDialog": "Mostrar diálogo de eliminación",
|
||||||
"settings.openchamber.defaults.field.openFilesPreviewAria": "Abrir arquivos em modo prévia",
|
"settings.openchamber.defaults.field.openFilesPreviewAria": "Abrir arquivos com visualização em modo de prévia",
|
||||||
"settings.openchamber.defaults.field.openFilesPreview": "Abrir arquivos em modo prévia",
|
"settings.openchamber.defaults.field.openFilesPreview": "Abrir arquivos com visualização em modo de prévia",
|
||||||
"settings.openchamber.defaults.option.default": "Padrão",
|
"settings.openchamber.defaults.option.default": "Padrão",
|
||||||
"settings.openchamber.defaults.option.defaultLowercase": "default",
|
"settings.openchamber.defaults.option.defaultLowercase": "default",
|
||||||
"settings.openchamber.git.title": "Preferencias de Git",
|
"settings.openchamber.git.title": "Preferencias de Git",
|
||||||
|
|||||||
@@ -1451,8 +1451,8 @@ export const settingsDict = {
|
|||||||
"settings.openchamber.defaults.smallModel.useDefaultAria": "Використовувати типову малу модель",
|
"settings.openchamber.defaults.smallModel.useDefaultAria": "Використовувати типову малу модель",
|
||||||
"settings.openchamber.defaults.smallModel.overrideModel": "Модель заміни",
|
"settings.openchamber.defaults.smallModel.overrideModel": "Модель заміни",
|
||||||
"settings.openchamber.defaults.field.showDeletionDialog": "Показати діалогове вікно видалення",
|
"settings.openchamber.defaults.field.showDeletionDialog": "Показати діалогове вікно видалення",
|
||||||
"settings.openchamber.defaults.field.openFilesPreviewAria": "Відкривати файли в режимі попереднього перегляду",
|
"settings.openchamber.defaults.field.openFilesPreviewAria": "Відкривати файли з підтримкою перегляду в режимі попереднього перегляду",
|
||||||
"settings.openchamber.defaults.field.openFilesPreview": "Відкривати файли в режимі попереднього перегляду",
|
"settings.openchamber.defaults.field.openFilesPreview": "Відкривати файли з підтримкою перегляду в режимі попереднього перегляду",
|
||||||
"settings.openchamber.defaults.option.default": "За замовчуванням",
|
"settings.openchamber.defaults.option.default": "За замовчуванням",
|
||||||
"settings.openchamber.defaults.option.defaultLowercase": "за замовчуванням",
|
"settings.openchamber.defaults.option.defaultLowercase": "за замовчуванням",
|
||||||
"settings.openchamber.git.title": "Налаштування Git",
|
"settings.openchamber.git.title": "Налаштування Git",
|
||||||
|
|||||||
@@ -1451,8 +1451,8 @@ export const settingsDict = {
|
|||||||
'settings.openchamber.defaults.smallModel.useDefaultAria': '使用默认小模型',
|
'settings.openchamber.defaults.smallModel.useDefaultAria': '使用默认小模型',
|
||||||
'settings.openchamber.defaults.smallModel.overrideModel': '覆盖模型',
|
'settings.openchamber.defaults.smallModel.overrideModel': '覆盖模型',
|
||||||
'settings.openchamber.defaults.field.showDeletionDialog': '显示删除对话框',
|
'settings.openchamber.defaults.field.showDeletionDialog': '显示删除对话框',
|
||||||
'settings.openchamber.defaults.field.openFilesPreviewAria': '以预览模式打开文件',
|
'settings.openchamber.defaults.field.openFilesPreviewAria': '以预览模式打开可预览文件',
|
||||||
'settings.openchamber.defaults.field.openFilesPreview': '以预览模式打开文件',
|
'settings.openchamber.defaults.field.openFilesPreview': '以预览模式打开可预览文件',
|
||||||
'settings.openchamber.defaults.option.default': '默认',
|
'settings.openchamber.defaults.option.default': '默认',
|
||||||
'settings.openchamber.defaults.option.defaultLowercase': '默认',
|
'settings.openchamber.defaults.option.defaultLowercase': '默认',
|
||||||
'settings.openchamber.git.title': 'Git 偏好设置',
|
'settings.openchamber.git.title': 'Git 偏好设置',
|
||||||
|
|||||||
@@ -1362,8 +1362,8 @@
|
|||||||
'settings.openchamber.defaults.smallModel.useDefaultAria': '使用預設小模型',
|
'settings.openchamber.defaults.smallModel.useDefaultAria': '使用預設小模型',
|
||||||
'settings.openchamber.defaults.smallModel.overrideModel': '覆寫模型',
|
'settings.openchamber.defaults.smallModel.overrideModel': '覆寫模型',
|
||||||
'settings.openchamber.defaults.field.showDeletionDialog': '顯示刪除對話方塊',
|
'settings.openchamber.defaults.field.showDeletionDialog': '顯示刪除對話方塊',
|
||||||
'settings.openchamber.defaults.field.openFilesPreviewAria': '以預覽模式開啟檔案',
|
'settings.openchamber.defaults.field.openFilesPreviewAria': '以預覽模式開啟可預覽檔案',
|
||||||
'settings.openchamber.defaults.field.openFilesPreview': '以預覽模式開啟檔案',
|
'settings.openchamber.defaults.field.openFilesPreview': '以預覽模式開啟可預覽檔案',
|
||||||
'settings.openchamber.defaults.option.default': '預設',
|
'settings.openchamber.defaults.option.default': '預設',
|
||||||
'settings.openchamber.defaults.option.defaultLowercase': '預設',
|
'settings.openchamber.defaults.option.defaultLowercase': '預設',
|
||||||
'settings.openchamber.git.title': 'Git 偏好設定',
|
'settings.openchamber.git.title': 'Git 偏好設定',
|
||||||
|
|||||||
Reference in New Issue
Block a user