sublime-mcp 1.12.3 → 1.12.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -434,13 +434,21 @@
434
434
  },
435
435
  {
436
436
  "name": "close_file",
437
- "description": "Close a file by path, or close the active file if path is omitted. Routed through Sublime's real close command (not a direct API call), so a host-side close-blocking hook gets a chance to run -- e.g. GhostShell's ai_terminal package refuses this outright (no dialog, just a no-op) for any ai_terminal tab, so calling this on one does nothing rather than closing it. Only ever targets an already-open view found by path or the current active view -- it cannot target an unsaved/path-less tab (like an ai_terminal tab) by index; do not call this expecting it to close 'whatever tab you mean' when no path resolves.",
437
+ "description": "Close a file by path, or close the active file if path is omitted. Routed through Sublime's real close command (not a direct API call), so a host-side close-blocking hook gets a chance to run -- e.g. GhostShell's ai_terminal package refuses this outright (no dialog, just a no-op) for any ai_terminal tab, so calling this on one does nothing rather than closing it. Only ever targets an already-open view found by path, by name or index, or the current active view. Pass path for a saved file. For a tab with no path (unsaved buffer, scratch view) pass name (partial, case-insensitive match on the tab's title) or index (0-based, from get_open_files); with none of the three it closes whichever tab is active, so name the tab you mean. A name or index that matches nothing is an error and closes nothing. (run_command 'close' with scope='view' does not close a tab: use this tool.)",
438
438
  "inputSchema": {
439
439
  "type": "object",
440
440
  "properties": {
441
441
  "path": {
442
442
  "type": "string",
443
443
  "default": ""
444
+ },
445
+ "name": {
446
+ "type": "string",
447
+ "default": ""
448
+ },
449
+ "index": {
450
+ "type": "integer",
451
+ "default": -1
444
452
  }
445
453
  }
446
454
  }
@@ -1726,6 +1734,10 @@
1726
1734
  "offset": {
1727
1735
  "type": "integer",
1728
1736
  "description": "Skip this many matching items (default 0)."
1737
+ },
1738
+ "wait_ms": {
1739
+ "type": "integer",
1740
+ "description": "Wait up to this long (at most 60000) for the panel to appear; use 15000 for Package Control's Install Package list, which loads for a while after Enter (default 0 = no waiting)."
1729
1741
  }
1730
1742
  }
1731
1743
  }
@@ -1811,10 +1823,16 @@
1811
1823
  },
1812
1824
  {
1813
1825
  "name": "get_sheets",
1814
- "description": "List ALL sheets (tabs) in the current window by index, including images and untitled buffers.\nReturns identity, group position, selection/focus state, type, path, name, and dirty state.\nUse index with get_sheet_content to read a specific tab.",
1826
+ "description": "List ALL sheets (tabs) in the current window by index, including images and untitled buffers.\nReturns identity, group position, selection/focus state, type, path, name, and dirty state.\nUse index with get_sheet_content to read a specific tab.\nEvery tab also carries its full settings (over 100 keys); pass settings=false to leave them out.",
1815
1827
  "inputSchema": {
1816
1828
  "type": "object",
1817
- "properties": {}
1829
+ "properties": {
1830
+ "settings": {
1831
+ "type": "boolean",
1832
+ "default": true,
1833
+ "description": "Include each tab's full settings dict (default true). false gives a compact list."
1834
+ }
1835
+ }
1818
1836
  }
1819
1837
  },
1820
1838
  {
@@ -1898,6 +1916,26 @@
1898
1916
  }
1899
1917
  }
1900
1918
  },
1919
+ {
1920
+ "name": "get_view_regions",
1921
+ "description": "Return the regions a plugin stored in a view under a region key (view.add_regions): begin, end and the first 80 characters of each. Sublime cannot list the keys, so name them: one key or several separated by commas (for example 'ifdef,ifdeferror' for the Simple Ifdef package). Use it to check what a highlighting plugin drew without a screenshot. Omit name for the active view.",
1922
+ "inputSchema": {
1923
+ "type": "object",
1924
+ "properties": {
1925
+ "key": {
1926
+ "type": "string",
1927
+ "description": "Region key, or several separated by commas."
1928
+ },
1929
+ "name": {
1930
+ "type": "string",
1931
+ "default": ""
1932
+ }
1933
+ },
1934
+ "required": [
1935
+ "key"
1936
+ ]
1937
+ }
1938
+ },
1901
1939
  {
1902
1940
  "name": "get_view_size",
1903
1941
  "description": "Return the total character count of any open tab by name (partial match, case-insensitive).\nUse before get_view_chars to compute offsets. Omit name for the active view.",
@@ -2604,7 +2642,7 @@
2604
2642
  },
2605
2643
  {
2606
2644
  "name": "open_folder",
2607
- "description": "Open a folder in a new window (WindowCommand). Pass 'path' in args.",
2645
+ "description": "Open a folder in a NEW window (makes the window and sets the folder as its project data; returns window_id and folders). Pass 'path' (an existing folder).",
2608
2646
  "inputSchema": {
2609
2647
  "type": "object",
2610
2648
  "properties": {
@@ -2778,6 +2816,10 @@
2778
2816
  "text": {
2779
2817
  "type": "string",
2780
2818
  "description": "Text of the item to pick."
2819
+ },
2820
+ "wait_ms": {
2821
+ "type": "integer",
2822
+ "description": "Wait up to this long (at most 60000) for the panel to appear (15000 for the Install Package list); default 0."
2781
2823
  }
2782
2824
  }
2783
2825
  }
@@ -3421,7 +3463,7 @@
3421
3463
  },
3422
3464
  {
3423
3465
  "name": "run_command",
3424
- "description": "Run any Sublime Text command. scope='window' (default) or 'view'.\nFor scope='view'/'text', optionally target a specific tab with name (partial, case-insensitive) or index (0-based, from get_open_files) instead of whatever tab happens to be globally focused -- important when another agent/session may be sharing this Sublime instance.",
3466
+ "description": "Run any Sublime Text command. scope='window' (default) or 'view'.\nFor scope='view'/'text', optionally target a specific tab with name (partial, case-insensitive) or index (0-based, from get_open_files) instead of whatever tab happens to be globally focused -- important when another agent/session may be sharing this Sublime instance.\nok means the command was dispatched, not that it did anything: a command that opens a dialog often does so a moment after this returns. Pass settle_ms (for example 300) to wait up to that long and get any dialog that appeared in the result as 'dialogs' (Windows; same fields as list_native_windows).",
3425
3467
  "inputSchema": {
3426
3468
  "type": "object",
3427
3469
  "properties": {
@@ -3442,6 +3484,10 @@
3442
3484
  "index": {
3443
3485
  "type": "integer",
3444
3486
  "default": -1
3487
+ },
3488
+ "settle_ms": {
3489
+ "type": "integer",
3490
+ "default": 0
3445
3491
  }
3446
3492
  },
3447
3493
  "required": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sublime-mcp",
3
- "version": "1.12.3",
3
+ "version": "1.12.5",
4
4
  "description": "MCP server for Sublime Text 4 — exposes editor state and editing tools to AI assistants via the Model Context Protocol.",
5
5
  "type": "module",
6
6
  "bin": {