settings — IDE 设置
读写 IDE 配置项,支持通用接口与类型化子命名空间。
self.settings 提供 IDE 设置的读写能力。所有设置项以点号分隔的名称标识,例如 theme.mode、editor.font_size、serial.default_baud_rate。除通用接口外,还提供按领域划分的类型化子命名空间,每个子命名空间暴露成对的 get_X / set_X 方法。
通用方法
| 方法 | 说明 |
|---|---|
get(name, callback?) | 读取任意设置项 |
set(name, value, callback?) | 写入任意设置项 |
list(callback?) | 列出所有设置项 |
get(name, callback?)
self.settings.get(
"theme.mode",
callback=lambda **cb: print(cb.get("value")),
)参数:
name(str) — 设置项名称,使用点号分隔,如theme.mode
set(name, value, callback?)
self.settings.set("theme.mode", "dark")参数:
name(str) — 设置项名称value(Any) — 设置值
list(callback?)
self.settings.list(callback=lambda **cb: print(cb))子命名空间
| 子命名空间 | 说明 | 键前缀 |
|---|---|---|
self.settings.theme | 外观与样式 | theme. |
self.settings.editor | 编辑器 | editor. |
self.settings.lsp | 语言服务器 | lsp. |
self.settings.serial | 串口 | serial. |
self.settings.terminal | 终端显示 | terminal. |
self.settings.micropython_stubs | MicroPython 类型存根 | micropython.stubs. |
ThemeSettings
self.settings.theme,对应键前缀 theme.。
| 方法对 | 键 | 值类型 |
|---|---|---|
get_mode / set_mode | theme.mode | str |
get_style / set_style | theme.style | str |
get_color / set_color | theme.color | int (可选) |
get_active_plugin_theme_id / set_active_plugin_theme_id | theme.active_plugin_theme_id | str (可选) |
get_use_material_context_menu / set_use_material_context_menu | theme.use_material_context_menu | bool |
self.settings.theme.get_mode(
callback=lambda **cb: print(cb.get("value")),
)
self.settings.theme.set_mode("dark")
self.settings.theme.set_use_material_context_menu(True)EditorSettings
self.settings.editor,对应键前缀 editor.。
| 方法对 | 键 | 值类型 |
|---|---|---|
get_font_family / set_font_family | editor.font_family | str |
get_font_size / set_font_size | editor.font_size | float |
get_word_wrap / set_word_wrap | editor.word_wrap | bool |
get_line_number / set_line_number | editor.line_number | bool |
get_chinese_to_unicode / set_chinese_to_unicode | editor.chinese_to_unicode | bool |
get_enable_signal_detection / set_enable_signal_detection | editor.enable_signal_detection | bool |
get_upload_confirm_style / set_upload_confirm_style | editor.upload_confirm_style | str |
get_confirm_shortcut / set_confirm_shortcut | editor.confirm_shortcut | str |
get_cancel_shortcut / set_cancel_shortcut | editor.cancel_shortcut | str |
get_code_folding / set_code_folding | editor.code_folding | bool |
get_guide_lines / set_guide_lines | editor.guide_lines | bool |
get_local_suggestions / set_local_suggestions | editor.local_suggestions | bool |
get_keyboard_suggestions / set_keyboard_suggestions | editor.keyboard_suggestions | bool |
get_use_space_as_tab / set_use_space_as_tab | editor.use_space_as_tab | bool |
get_tab_size / set_tab_size | editor.tab_size | int |
get_gutter_divider / set_gutter_divider | editor.gutter_divider | bool |
self.settings.editor.set_font_family("JetBrains Mono")
self.settings.editor.set_font_size(14.0)
self.settings.editor.set_word_wrap(True)
self.settings.editor.set_tab_size(4)LspSettings
self.settings.lsp,对应键前缀 lsp.。
| 方法对 | 键 | 值类型 |
|---|---|---|
get_enabled / set_enabled | lsp.enabled | bool |
get_type / set_type | lsp.type | str |
get_websocket_path / set_websocket_path | lsp.websocket_path | str |
get_stdio_executable / set_stdio_executable | lsp.stdio_executable | str |
get_stdio_args / set_stdio_args | lsp.stdio_args | str |
get_disable_warning / set_disable_warning | lsp.disable_warning | bool |
get_disable_error / set_disable_error | lsp.disable_error | bool |
get_semantic_highlighting / set_semantic_highlighting | lsp.semantic_highlighting | bool |
get_code_completion / set_code_completion | lsp.code_completion | bool |
get_hover_info / set_hover_info | lsp.hover_info | bool |
get_code_action / set_code_action | lsp.code_action | bool |
get_signature_help / set_signature_help | lsp.signature_help | bool |
get_document_color / set_document_color | lsp.document_color | bool |
get_document_highlight / set_document_highlight | lsp.document_highlight | bool |
get_code_folding / set_code_folding | lsp.code_folding | bool |
get_inlay_hint / set_inlay_hint | lsp.inlay_hint | bool |
get_go_to_definition / set_go_to_definition | lsp.go_to_definition | bool |
get_rename / set_rename | lsp.rename | bool |
self.settings.lsp.set_enabled(True)
self.settings.lsp.set_type("stdio")
self.settings.lsp.set_stdio_executable("pylsp")SerialSettings
self.settings.serial,对应键前缀 serial.。
| 方法对 | 键 | 值类型 |
|---|---|---|
get_default_baud_rate / set_default_baud_rate | serial.default_baud_rate | int |
get_auto_reconnect / set_auto_reconnect | serial.auto_reconnect | bool |
get_repl_mode / set_repl_mode | serial.repl_mode | str |
get_file_transfer_mode / set_file_transfer_mode | serial.file_transfer_mode | str |
get_hardware_reset_strategy / set_hardware_reset_strategy | serial.hardware_reset_strategy | str |
self.settings.serial.set_default_baud_rate(115200)
self.settings.serial.set_auto_reconnect(True)TerminalSettings
self.settings.terminal,对应键前缀 terminal.。
| 方法对 | 键 | 值类型 |
|---|---|---|
get_font_family / set_font_family | terminal.font_family | str |
get_font_size / set_font_size | terminal.font_size | float |
get_line_height / set_line_height | terminal.line_height | float |
self.settings.terminal.set_font_family("Cascadia Code")
self.settings.terminal.set_font_size(14.0)
self.settings.terminal.set_line_height(1.5)MicroPythonStubsSettings
self.settings.micropython_stubs,对应键前缀 micropython.stubs.。
| 方法对 | 键 | 值类型 |
|---|---|---|
get_enabled / set_enabled | micropython.stubs.enabled | bool |
get_auto_detect_layers / set_auto_detect_layers | micropython.stubs.auto_detect_layers | bool |
get_layers / set_layers | micropython.stubs.layers | list[dict] |
get_extra_paths / set_extra_paths | micropython.stubs.extra_paths | list[str] |
self.settings.micropython_stubs.set_enabled(True)
self.settings.micropython_stubs.set_layers([
{"provider": "my-stubs", "profile": "esp32"},
])
self.settings.micropython_stubs.set_extra_paths(["/path/to/stubs"])使用示例
class SetupPlugin(UiPlugin):
def configure_editor(self):
self.settings.editor.set_font_family("JetBrains Mono")
self.settings.editor.set_font_size(14.0)
self.settings.editor.set_use_space_as_tab(True)
def read_setting(self):
self.settings.get(
"editor.font_size",
callback=lambda **cb: print(cb.get("value")),
)
def list_all(self):
self.settings.list(callback=lambda **cb: print(cb))设置名使用点号分隔且区分大小写,拼写错误会导致读取或写入失败。set 会立即生效并持久化,请谨慎覆盖用户配置。