docs/ / samples/settings.toml · branch develop
# Пример пользовательского settings.toml (ADR 0028: %LocalAppData%\CascadeIDE\settings.toml).
# Ключи — snake_case (CascadeTomlSerializer / Tomlyn). Секции — вложенные таблицы.
# Заводские дефолты: Settings/defaults-settings.toml (embedded; merge поверх user-файла).
# Соглашение как в defaults: явные URL/пути; пустая строка только с комментарием (PATH, выключено, позже).
# Env: <field>_env (ADR 0149): executable_env = "PATH" или имя переменной с путём/URL.
# Строка топологии и грамматика якорей (ADR 0017 § display.screens).
# Tier compact/cockpit — ADR 0171: на 1–2 мониторах обычно compact; cockpit — 3 mon / ultrawide.
[display.screens]
topology = "(F)"
[display.presentation]
tier = "auto"
compact_intercom_placement = "side"
compact_auxiliary_panel_width_px = 380
compact_intercom_bottom_dock_height_px = 280
compact_mfd_bottom_dock_height_px = 220
[display.screens.grammar]
brackets = "()"
between_screens = " "
between_zones = "+"
pfd = "P"
forward = "F"
mfd = "M"
[display]
maximize_hosts_on_dedicated_screens = true
prefer_repo_instruments = false
[display.pfd]
open_on_startup = false
[display.mfd]
open_on_startup = false
[display.skia]
zone_geometry_overlay = false
instrument_mount = false
[display.mount]
default_style = "instrument_mount_v1"
enforce_eligibility = false
min_sa = 0.6
min_performance = 0.6
max_workload = 0.5
require_scores = false
[[display.mount.rules]]
surface = "main_window_docked_grid"
slot = "pfd"
instrument = "ide_health_status_v1"
style = "instrument_mount_v1"
sa_score = 0.8
performance_score = 0.8
workload_score = 0.2
[[display.mount.rules]]
surface = "main_window_plus_mfd_host_top_level"
slot = "mfd"
instrument = "ide_health_status_v1"
style = "instrument_mount_v1"
sa_score = 0.75
performance_score = 0.72
workload_score = 0.28
# Основные слоты PFD/MFD (ADR 0050): alias или канонический instrument_id.
[display.instruments]
pfd_primary = "workspace_map"
# Полоса warm-up/HCI (instrument workspace_background_status_v1): background_status | none
pfd_status_strip = "background_status"
forward_status_strip = "background_status"
[ai]
mode = "local"
[ai.local]
backend = "ollama"
[ai.local.ollama]
model = "qwen2.5-coder:7b"
[ai.acp]
cursor_acp_path = ""
# Пусто = искать cursor-agent в PATH.
cursor_acp_model_id = ""
[ai.mcp_only]
[ai.cloud]
active_provider = "anthropic"
[ai.cloud.anthropic]
model = "claude-sonnet-4-20250514"
[ai.cloud.openai]
base_url = "https://api.openai.com"
model = "gpt-4o"
[ai.cloud.deepseek]
base_url = "https://api.deepseek.com"
model = "deepseek-chat"
[ai.chat]
settings_presentation = "mfd"
show_thinking_in_history = true
[mcp]
acp_auto_inject_ide_mcp = true
external_servers_json = "[]"
external_servers_json_path = ""
[hybrid_index]
# In-proc integration settings for Hybrid Codebase Index (ADR 0106).
# Core HCI settings live in workspace folder under `index_dir` (same as external MCP).
enabled = true
index_dir = ".hybrid-codebase-index"
debounce_ms = 750
auto_reindex_on_solution_open = true
watch_files = true
scope_mode = "workspace+solution" # or "workspace"
pause_when_mcp_stdio_host = false
# Palette go-to workspace search (ADR 0112): t:/m:/x:. hci/auto fall back to ripgrep until HCI path lands.
[command_palette.go_to_search]
backend = "rg"
[workspace]
pfd_expanded = true
show_terminal = true
show_git = false
show_instrumentation = true
mode = "Flight"
culture = ""
splitters_locked = false
# ADR 0120: "editor" (дефолт) | "intercom" — Intercom в Forward, редактор на MFD
primary_work_surface = "intercom"
[code_navigation_map]
view = "list"
depth = "file"
related_graph_layout = "auto"
# auto | vertical | horizontal — главная ось control-flow мини-карты
control_flow_main_axis = "auto"
# intent | detailed (ADR 0151)
control_flow_grain = "intent"
# id пресета: бандл → .cascade/workspace.toml → settings ([[code_navigation_map.condition_branch.presets]])
condition_branch_label_preset = "plus_minus"
# [[code_navigation_map.condition_branch.presets]]
# id = "my_labels"
# positive = "Y"
# negative = "N"
# ------------------------------------------------------------
# workspace.adr.map — doc correspondence (ADR 0061)
# ------------------------------------------------------------
#
# Это пример секции для .cascade/workspace.toml (в корне репозитория), не для settings.toml.
#
# Секция задаёт декларативную карту «префикс пути (от корня репо) → ADR-док(и)».
# Алгоритм: longest prefix wins, затем fallback "*".
#
# [workspace.adr.map]
# "Features/UiChrome/" = [
# "docs/adr/0010-ui-mode-catalog.md",
# "docs/adr/0021-pfd-mfd-cockpit-attention-model.md",
# ]
# "*" = "docs/adr/0006-presentation-layers-and-feature-slices.md"
#
# [workspace.adr]
# # none | linked — auto include ADRs linked from выбранного ADR markdown (1 hop)
# auto_include = "linked"
# # max linked ADRs to add (per click/preview)
# max_related = 8
#
# [workspace.features]
# [[workspace.features.feature]]
# id = "intercom.chat"
# title = "Intercom Chat"
# paths = ["Features/Chat/", "Intercom/"]
# docs = ["docs/adr/0137-intercom-message-code-correspondence.md", "docs/adr/0144-intercom-oauth-connect.md"]
# tags = ["intercom", "chat"]
[languages.csharp]
mode = "OmniSharp"
[languages.csharp.omni_sharp]
executable = ""
arguments = ""
[languages.markdown]
mode = "Marksman"
[languages.markdown.marksman]
executable = ""
arguments = ""
[markdown.diagrams]
kroki = true
kroki_url = "https://kroki.io"
[code_navigation]
# Пресеты: бандл CodeNavigation/presets.toml + .cascade/workspace.toml + этот файл ([[code_navigation.presets]]).
# Подписи ветвей IF (control-flow): condition-branch-label-presets.toml + workspace + settings
# [[code_navigation_map.condition_branch.presets]] в .cascade/workspace.toml — team overlay.
# [[code_navigation.presets]]
# id = "my_preset"
# exclude_kinds = ["same_namespace"]
# Типографика (Skia Intercom, AvaloniaEdit). Заводские значения — Settings/defaults-settings.toml.
[fonts.intercom]
prose_pt = 14
# Отдельный размер только для лобового Forward (intercom); MFD Chat — prose_pt. Не про ширину split-колонки.
prose_pt_forward = 14
# Composer: ввод и placeholder внизу; 0 = ~prose×12/11
# composer_pt = 15
# chrome_title_pt = 14
# chrome_subtitle_pt = 11
# chrome_heading_pt = 15
# card_title_pt = 15
# panel_title_pt = 16
# panel_subtitle_pt = 12
# panel_label_pt = 13
# panel_input_pt = 15
# panel_body_pt = 16
prose_family = "Segoe UI"
mono_family = "Cascadia Mono,Consolas"
chip_family = "Segoe UI"
chip_id_family = "Consolas"
slash_meta_family = "Consolas"
slash_args_family = "Consolas"
role_family = "Segoe UI"
gutter_family = "Cascadia Mono,Consolas"
[fonts.editor]
size_pt = 14
family = "Consolas,Cascadia Code,monospace"
[editor.inline_hints]
# Editor inlay-hints toggles.
enabled = true
parameter_names = true
variable_types = true
[editor.debug_hints]
enabled = true
show_assignments = true
show_conditions = true
# Intercom: плотность ленты — comfortable | compact (см. также [fonts.intercom] prose_pt / prose_pt_forward)
[intercom]
feed_metrics = "comfortable"
# Intercom: code-attach (chip F:/M:/L:) — ADR 0130
# navigate: reveal | select; reveal_load_solution: when_needed | never
[intercom.attachments.code]
navigate = "reveal"
reveal_load_solution = "when_needed"
# Диагностика отправки Intercom → {workspace}/.cascade-ide/intercom-send-trace.log
[logging.intercom]
send_trace = false
View only · write via MCP/CIDE