Handle unknown lexer, remove dead _THEMES list, tighten JSON detection - Catch unknown Pygments lexer names and fall back to plain text - Remove unused _THEMES list from cli.py - Only auto-detect JSON when content starts with { or [ to avoid false positives on trivial values like strings or numbers

This commit is contained in:
2026-04-01 16:10:21 -07:00
parent 5db15a8a17
commit dd45fb05f7
3 changed files with 15 additions and 24 deletions

View File

@@ -20,22 +20,6 @@ app = typer.Typer(
rich_markup_mode="rich",
)
_THEMES = [
"monokai",
"github-dark",
"one-dark",
"vim",
"vs",
"nord",
"dracula",
"solarized-dark",
"solarized-light",
"default",
"friendly",
"native",
"emacs",
]
def version_callback(value: bool) -> None:
if value:

View File

@@ -73,10 +73,12 @@ def detect_type(
return EXTENSION_MAP[suffix]
if content is not None:
try:
json.loads(content[:1000])
return "json"
except (json.JSONDecodeError, ValueError):
pass
stripped = content.lstrip()
if stripped and stripped[0] in ("{", "["):
try:
json.loads(stripped[:1000])
return "json"
except (json.JSONDecodeError, ValueError):
pass
return "text"

View File

@@ -44,9 +44,14 @@ def render(
content, "json", theme=options.theme, line_numbers=line_numbers
)
else:
renderable = Syntax(
content, file_type, theme=options.theme, line_numbers=line_numbers
)
try:
renderable = Syntax(
content, file_type, theme=options.theme, line_numbers=line_numbers
)
except Exception:
renderable = Syntax(
content, "text", theme=options.theme, line_numbers=line_numbers
)
if use_pager:
with console.pager(styles=True):