sublime-mcp 1.14.4 → 1.15.0

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.
Files changed (2) hide show
  1. package/fallback-tools.json +300 -419
  2. package/package.json +1 -1
@@ -36,25 +36,20 @@
36
36
  }
37
37
  }
38
38
  },
39
- {
40
- "name": "add_missing_newline",
41
- "description": "Alias of ensure_newline_at_eof \u2014 add a trailing newline at EOF if absent.",
42
- "inputSchema": {
43
- "type": "object",
44
- "properties": {}
45
- }
46
- },
47
39
  {
48
40
  "name": "add_to_kill_ring",
49
- "description": "Add the current selection to the kill ring (TextCommand, used by yank). forward=false (default) adds the selection; forward=true is the variant used when killing forward.",
41
+ "description": "Add the selected text to the kill ring, Sublime's Emacs-style clipboard (TextCommand). forward is required: for a cursor with nothing selected, forward=true takes the character after it and forward=false the character before it.",
50
42
  "inputSchema": {
51
43
  "type": "object",
52
44
  "properties": {
53
45
  "forward": {
54
46
  "type": "boolean",
55
- "default": false
47
+ "description": "Direction for empty selections."
56
48
  }
57
- }
49
+ },
50
+ "required": [
51
+ "forward"
52
+ ]
58
53
  }
59
54
  },
60
55
  {
@@ -147,6 +142,14 @@
147
142
  },
148
143
  "default": {
149
144
  "type": "string"
145
+ },
146
+ "commit_single": {
147
+ "type": "boolean",
148
+ "description": "As in Sublime's own keymap/menu."
149
+ },
150
+ "snippets_only": {
151
+ "type": "boolean",
152
+ "description": "As in Sublime's own keymap/menu."
150
153
  }
151
154
  }
152
155
  }
@@ -167,22 +170,6 @@
167
170
  "properties": {}
168
171
  }
169
172
  },
170
- {
171
- "name": "auto_complete_prev",
172
- "description": "Goes to the previous entry in the AC panel, when the AC panel is visible. (TextCommand)",
173
- "inputSchema": {
174
- "type": "object",
175
- "properties": {}
176
- }
177
- },
178
- {
179
- "name": "auto_indent",
180
- "description": "Apply auto-indentation to the current selection(s) using the active syntax's indentation rules.",
181
- "inputSchema": {
182
- "type": "object",
183
- "properties": {}
184
- }
185
- },
186
173
  {
187
174
  "name": "auto_indent_tag",
188
175
  "description": "Re-indent the enclosing HTML/XML tag structure (TextCommand). Useful for fixing nested tag indentation.",
@@ -396,7 +383,24 @@
396
383
  "description": "Create a clone of the active view (opens the same file in a new tab, sharing the buffer).",
397
384
  "inputSchema": {
398
385
  "type": "object",
399
- "properties": {}
386
+ "properties": {
387
+ "add_to_selection": {
388
+ "type": "boolean",
389
+ "description": "As in Sublime's own keymap/menu."
390
+ },
391
+ "group": {
392
+ "type": "integer",
393
+ "description": "As in Sublime's own keymap/menu. -1 means the current group."
394
+ },
395
+ "index": {
396
+ "type": "integer",
397
+ "description": "As in Sublime's own keymap/menu. -1 means the current position."
398
+ },
399
+ "retain_viewport_position": {
400
+ "type": "boolean",
401
+ "description": "As in Sublime's own keymap/menu."
402
+ }
403
+ }
400
404
  }
401
405
  },
402
406
  {
@@ -479,22 +483,6 @@
479
483
  "properties": {}
480
484
  }
481
485
  },
482
- {
483
- "name": "close_other_tabs",
484
- "description": "Alias of close_others \u2014 close all views in the current group except the active one.",
485
- "inputSchema": {
486
- "type": "object",
487
- "properties": {}
488
- }
489
- },
490
- {
491
- "name": "close_others",
492
- "description": "Close all tabs in the active tab's group except the active one (Close Other Tabs).",
493
- "inputSchema": {
494
- "type": "object",
495
- "properties": {}
496
- }
497
- },
498
486
  {
499
487
  "name": "close_others_by_index",
500
488
  "description": "Closes all views of a group but the one identified by group and index. (WindowCommand)",
@@ -576,10 +564,19 @@
576
564
  },
577
565
  {
578
566
  "name": "close_unmodified",
579
- "description": "Close the tabs without unsaved changes in the active tab's group (Close Unmodified Tabs).",
567
+ "description": "Close Unmodified Tabs (WindowCommand close_unmodified, from the tab context menu). group and index name the tab the menu was opened on; without them (Sublime's default -1, -1 means the right-clicked tab) it does nothing. Get them from get_sheet_index.",
580
568
  "inputSchema": {
581
569
  "type": "object",
582
- "properties": {}
570
+ "properties": {
571
+ "group": {
572
+ "type": "integer",
573
+ "description": "The index of the target group."
574
+ },
575
+ "index": {
576
+ "type": "integer",
577
+ "description": "The index within the target group."
578
+ }
579
+ }
583
580
  }
584
581
  },
585
582
  {
@@ -963,22 +960,25 @@
963
960
  },
964
961
  {
965
962
  "name": "edit_settings",
966
- "description": "Open a settings file for editing in a split view: the default settings on the left, your own on the right (WindowCommand edit_settings). resource is the settings name without the extension, e.g. 'Preferences' or 'Python'; or pass base_file and user_file as Sublime's own commands do.",
963
+ "description": "Open a settings file for editing in a split view: the package's settings on the left, your own on the right (WindowCommand edit_settings). Arguments go to Sublime unchanged, as in its Preferences > Settings menu entry: base_file is the settings file, e.g. ${packages}/Default/Preferences.sublime-settings (a package's settings are ${packages}/<Package>/<Name>.sublime-settings); user_file is optional; default is the text the new user file starts with, e.g. a comment and {\\n\\t$0\\n}.",
967
964
  "inputSchema": {
968
965
  "type": "object",
969
966
  "properties": {
970
- "resource": {
971
- "type": "string",
972
- "description": "e.g. 'Preferences'."
973
- },
974
967
  "base_file": {
975
968
  "type": "string",
976
969
  "description": "e.g. ${packages}/Default/Preferences.sublime-settings"
977
970
  },
978
971
  "user_file": {
979
972
  "type": "string"
973
+ },
974
+ "default": {
975
+ "type": "string",
976
+ "description": "Starting text for a new user file."
980
977
  }
981
- }
978
+ },
979
+ "required": [
980
+ "base_file"
981
+ ]
982
982
  }
983
983
  },
984
984
  {
@@ -1069,26 +1069,26 @@
1069
1069
  },
1070
1070
  {
1071
1071
  "name": "expand_selection",
1072
- "description": "Expand the current selection to the next semantic boundary (Ctrl+Shift+A). Repeated calls expand further: word \u2192 brackets \u2192 line \u2192 paragraph \u2192 scope.",
1073
- "inputSchema": {
1074
- "type": "object",
1075
- "properties": {}
1076
- }
1077
- },
1078
- {
1079
- "name": "expand_selection_to_brackets",
1080
- "description": "Expand the current selection to the enclosing brackets/parens/braces.",
1072
+ "description": "Expand each selection (Sublime's Selection > Expand menu). to is required: smart (Ctrl+Shift+A), line, line_prev (line upward), scope, brackets, tag or indentation. Repeated calls keep expanding.",
1081
1073
  "inputSchema": {
1082
1074
  "type": "object",
1083
- "properties": {}
1084
- }
1085
- },
1086
- {
1087
- "name": "expand_selection_to_indentation",
1088
- "description": "Expand the current selection to the surrounding indentation block.",
1089
- "inputSchema": {
1090
- "type": "object",
1091
- "properties": {}
1075
+ "properties": {
1076
+ "to": {
1077
+ "type": "string",
1078
+ "enum": [
1079
+ "smart",
1080
+ "line",
1081
+ "line_prev",
1082
+ "scope",
1083
+ "brackets",
1084
+ "tag",
1085
+ "indentation"
1086
+ ]
1087
+ }
1088
+ },
1089
+ "required": [
1090
+ "to"
1091
+ ]
1092
1092
  }
1093
1093
  },
1094
1094
  {
@@ -1096,15 +1096,12 @@
1096
1096
  "description": "Expand the current selection to the surrounding paragraph.",
1097
1097
  "inputSchema": {
1098
1098
  "type": "object",
1099
- "properties": {}
1100
- }
1101
- },
1102
- {
1103
- "name": "expand_selection_to_scope",
1104
- "description": "Expand the current selection to the enclosing syntax scope.",
1105
- "inputSchema": {
1106
- "type": "object",
1107
- "properties": {}
1099
+ "properties": {
1100
+ "markup_aware": {
1101
+ "type": "boolean",
1102
+ "description": "As in Sublime's own keymap/menu."
1103
+ }
1104
+ }
1108
1105
  }
1109
1106
  },
1110
1107
  {
@@ -1120,7 +1117,12 @@
1120
1117
  "description": "Convert leading tabs in the current selection (or whole file) to spaces, using the view's tab_size.",
1121
1118
  "inputSchema": {
1122
1119
  "type": "object",
1123
- "properties": {}
1120
+ "properties": {
1121
+ "set_translate_tabs": {
1122
+ "type": "boolean",
1123
+ "description": "As in Sublime's own keymap/menu."
1124
+ }
1125
+ }
1124
1126
  }
1125
1127
  },
1126
1128
  {
@@ -1144,60 +1146,9 @@
1144
1146
  "properties": {}
1145
1147
  }
1146
1148
  },
1147
- {
1148
- "name": "find_and_replace",
1149
- "description": "Open the single-file Find & Replace panel (Ctrl+H equivalent) on the active view, or perform a silent replace_all on it. For multi-file replace use replace_in_files. Supports regex with $1/$2 backrefs in replace, preserve_case, whole_word, in_selection, and wrap. By default opens the panel (show_panel=True); pass replace_all=True and show_panel=False to do a silent Replace All without the panel.",
1150
- "inputSchema": {
1151
- "type": "object",
1152
- "properties": {
1153
- "pattern": {
1154
- "type": "string"
1155
- },
1156
- "replace": {
1157
- "type": "string"
1158
- },
1159
- "case_sensitive": {
1160
- "type": "boolean",
1161
- "default": false
1162
- },
1163
- "regex": {
1164
- "type": "boolean",
1165
- "default": false
1166
- },
1167
- "whole_word": {
1168
- "type": "boolean",
1169
- "default": false
1170
- },
1171
- "preserve_case": {
1172
- "type": "boolean",
1173
- "default": false
1174
- },
1175
- "in_selection": {
1176
- "type": "boolean",
1177
- "default": false
1178
- },
1179
- "wrap": {
1180
- "type": "boolean",
1181
- "default": true
1182
- },
1183
- "show_panel": {
1184
- "type": "boolean",
1185
- "default": true
1186
- },
1187
- "replace_all": {
1188
- "type": "boolean",
1189
- "default": false
1190
- }
1191
- },
1192
- "required": [
1193
- "pattern",
1194
- "replace"
1195
- ]
1196
- }
1197
- },
1198
1149
  {
1199
1150
  "name": "find_in_file",
1200
- "description": "Find all occurrences of pattern in the active file. Returns list of {line, col, text}. Does NOT open a panel \u2014 for the interactive Find/Replace panel use find_and_replace. Use case_sensitive=True for case-sensitive match, regex=True to treat pattern as a regular expression (Python re syntax).",
1151
+ "description": "Find all occurrences of pattern in the active file. Returns list of {line, col, text}. Does NOT open a panel \u2014 for Sublime's Find/Replace panels use run_command with show_panel (see the guide). Use case_sensitive=True for case-sensitive match, regex=True to treat pattern as a regular expression (Python re syntax).",
1201
1152
  "inputSchema": {
1202
1153
  "type": "object",
1203
1154
  "properties": {
@@ -1219,53 +1170,9 @@
1219
1170
  ]
1220
1171
  }
1221
1172
  },
1222
- {
1223
- "name": "find_in_files",
1224
- "description": "Open ST's native Find in Files panel (Ctrl+Shift+H equivalent) and run a search. Routes through ST's real C++ find engine, NOT a Python reimplementation. The three-box Find / Replace / Where panel is shown so the user sees exactly what is being searched. The `where` parameter accepts the full ST Where syntax: globs (*.py, -*.md), folder paths, ${project}, ${folder:Name}, ${open_files}, <project filters>, or combinations separated by commas. Pass show_panel=False for a silent background search.",
1225
- "inputSchema": {
1226
- "type": "object",
1227
- "properties": {
1228
- "pattern": {
1229
- "type": "string",
1230
- "description": "Search string or regex"
1231
- },
1232
- "replace": {
1233
- "type": "string",
1234
- "description": "Optional Replace box text. Does not auto-execute; use replace_in_files for that."
1235
- },
1236
- "where": {
1237
- "type": "string",
1238
- "description": "Where filter: globs, folder paths, ${project}, ${folder:Name}, ${open_files}, <project filters>"
1239
- },
1240
- "case_sensitive": {
1241
- "type": "boolean",
1242
- "default": false
1243
- },
1244
- "regex": {
1245
- "type": "boolean",
1246
- "default": false
1247
- },
1248
- "whole_word": {
1249
- "type": "boolean",
1250
- "default": false
1251
- },
1252
- "preserve_case": {
1253
- "type": "boolean",
1254
- "default": false
1255
- },
1256
- "show_panel": {
1257
- "type": "boolean",
1258
- "default": true
1259
- }
1260
- },
1261
- "required": [
1262
- "pattern"
1263
- ]
1264
- }
1265
- },
1266
1173
  {
1267
1174
  "name": "find_in_folder",
1268
- "description": "Open the Find in Files panel with its Where box set to the given folders (WindowCommand find_in_folder, the sidebar's Find in Folder). To search, use project_search or find_in_files.",
1175
+ "description": "Open the Find in Files panel with its Where box set to the given folders (WindowCommand find_in_folder, the sidebar's Find in Folder). To search, use project_search.",
1269
1176
  "inputSchema": {
1270
1177
  "type": "object",
1271
1178
  "properties": {
@@ -1287,7 +1194,12 @@
1287
1194
  "description": "Jumps to the next occurrence of the text or pattern in the find buffer. (TextCommand)",
1288
1195
  "inputSchema": {
1289
1196
  "type": "object",
1290
- "properties": {}
1197
+ "properties": {
1198
+ "select_text": {
1199
+ "type": "boolean",
1200
+ "description": "As in Sublime's own keymap/menu."
1201
+ }
1202
+ }
1291
1203
  }
1292
1204
  },
1293
1205
  {
@@ -1295,7 +1207,16 @@
1295
1207
  "description": "Jumps to the previous occurrence of the text or pattern in the find buffer. (TextCommand)",
1296
1208
  "inputSchema": {
1297
1209
  "type": "object",
1298
- "properties": {}
1210
+ "properties": {
1211
+ "close_panel": {
1212
+ "type": "boolean",
1213
+ "description": "As in Sublime's own keymap/menu."
1214
+ },
1215
+ "select_text": {
1216
+ "type": "boolean",
1217
+ "description": "As in Sublime's own keymap/menu."
1218
+ }
1219
+ }
1299
1220
  }
1300
1221
  },
1301
1222
  {
@@ -1303,7 +1224,12 @@
1303
1224
  "description": "Finds the next occurrence of the current selection or the current word. (TextCommand)",
1304
1225
  "inputSchema": {
1305
1226
  "type": "object",
1306
- "properties": {}
1227
+ "properties": {
1228
+ "select_text": {
1229
+ "type": "boolean",
1230
+ "description": "As in Sublime's own keymap/menu."
1231
+ }
1232
+ }
1307
1233
  }
1308
1234
  },
1309
1235
  {
@@ -1327,7 +1253,12 @@
1327
1253
  "description": "Finds the previous occurrence of the current selection or the current word. (TextCommand)",
1328
1254
  "inputSchema": {
1329
1255
  "type": "object",
1330
- "properties": {}
1256
+ "properties": {
1257
+ "select_text": {
1258
+ "type": "boolean",
1259
+ "description": "As in Sublime's own keymap/menu."
1260
+ }
1261
+ }
1331
1262
  }
1332
1263
  },
1333
1264
  {
@@ -1360,10 +1291,15 @@
1360
1291
  },
1361
1292
  {
1362
1293
  "name": "focus_neighboring_group",
1363
- "description": "Move focus to the neighboring pane group (cycle through panes).",
1294
+ "description": "Move focus to the next pane group (View > Groups > Next), or to the previous one with forward=false (Previous). Without forward it goes to the next group.",
1364
1295
  "inputSchema": {
1365
1296
  "type": "object",
1366
- "properties": {}
1297
+ "properties": {
1298
+ "forward": {
1299
+ "type": "boolean",
1300
+ "description": "false = previous group."
1301
+ }
1302
+ }
1367
1303
  }
1368
1304
  },
1369
1305
  {
@@ -1464,7 +1400,7 @@
1464
1400
  },
1465
1401
  {
1466
1402
  "name": "fold_unfold",
1467
- "description": "Fold the code block at the cursor, or unfold it when it is already folded.",
1403
+ "description": "Sublime's own fold_unfold toggle (TextCommand, no arguments). Where a selection or the cursor touches a fold it unfolds it; otherwise it folds the selected text. With only a bare cursor and no fold there it does nothing: use fold to fold the block at the cursor.",
1468
1404
  "inputSchema": {
1469
1405
  "type": "object",
1470
1406
  "properties": {}
@@ -1993,7 +1929,16 @@
1993
1929
  "description": "Goto definition for the symbol under the cursor (WindowCommand).",
1994
1930
  "inputSchema": {
1995
1931
  "type": "object",
1996
- "properties": {}
1932
+ "properties": {
1933
+ "clear_to_right": {
1934
+ "type": "boolean",
1935
+ "description": "As in Sublime's own keymap/menu."
1936
+ },
1937
+ "side_by_side": {
1938
+ "type": "boolean",
1939
+ "description": "As in Sublime's own keymap/menu."
1940
+ }
1941
+ }
1997
1942
  }
1998
1943
  },
1999
1944
  {
@@ -2020,7 +1965,16 @@
2020
1965
  "description": "Goto reference for the symbol under the cursor (WindowCommand).",
2021
1966
  "inputSchema": {
2022
1967
  "type": "object",
2023
- "properties": {}
1968
+ "properties": {
1969
+ "clear_to_right": {
1970
+ "type": "boolean",
1971
+ "description": "As in Sublime's own keymap/menu."
1972
+ },
1973
+ "side_by_side": {
1974
+ "type": "boolean",
1975
+ "description": "As in Sublime's own keymap/menu."
1976
+ }
1977
+ }
2024
1978
  }
2025
1979
  },
2026
1980
  {
@@ -2276,22 +2230,6 @@
2276
2230
  }
2277
2231
  }
2278
2232
  },
2279
- {
2280
- "name": "move_line_down",
2281
- "description": "Move the current line(s) down by one line.",
2282
- "inputSchema": {
2283
- "type": "object",
2284
- "properties": {}
2285
- }
2286
- },
2287
- {
2288
- "name": "move_line_up",
2289
- "description": "Move the current line(s) up by one line.",
2290
- "inputSchema": {
2291
- "type": "object",
2292
- "properties": {}
2293
- }
2294
- },
2295
2233
  {
2296
2234
  "name": "move_sheets_to_group",
2297
2235
  "description": "Move one or more sheets together to a group and optional insertion position, preserving native multi-selection when requested.",
@@ -2365,25 +2303,14 @@
2365
2303
  {
2366
2304
  "name": "move_to_neighboring_group",
2367
2305
  "description": "Move the active view to the neighboring pane group.",
2368
- "inputSchema": {
2369
- "type": "object",
2370
- "properties": {}
2371
- }
2372
- },
2373
- {
2374
- "name": "move_view",
2375
- "description": "Move the active view to another group (Sublime's move_to_group). group is the target group index (0-based).",
2376
2306
  "inputSchema": {
2377
2307
  "type": "object",
2378
2308
  "properties": {
2379
- "group": {
2380
- "type": "integer",
2381
- "description": "Target group index, 0-based."
2309
+ "forward": {
2310
+ "type": "boolean",
2311
+ "description": "As in Sublime's own keymap/menu. false moves to the previous group."
2382
2312
  }
2383
- },
2384
- "required": [
2385
- "group"
2386
- ]
2313
+ }
2387
2314
  }
2388
2315
  },
2389
2316
  {
@@ -2453,7 +2380,12 @@
2453
2380
  "description": "Create a new pane in the active window (WindowCommand).",
2454
2381
  "inputSchema": {
2455
2382
  "type": "object",
2456
- "properties": {}
2383
+ "properties": {
2384
+ "move": {
2385
+ "type": "boolean",
2386
+ "description": "As in Sublime's own keymap/menu."
2387
+ }
2388
+ }
2457
2389
  }
2458
2390
  },
2459
2391
  {
@@ -2480,14 +2412,6 @@
2480
2412
  "properties": {}
2481
2413
  }
2482
2414
  },
2483
- {
2484
- "name": "new_view",
2485
- "description": "Create a new untitled view/tab in the current window. Alias of new_file.",
2486
- "inputSchema": {
2487
- "type": "object",
2488
- "properties": {}
2489
- }
2490
- },
2491
2415
  {
2492
2416
  "name": "new_window",
2493
2417
  "description": "Opens a new ST window. (ApplicationCommand) Observed on Sublime Text 4215: opens a new Sublime Text window.",
@@ -2538,15 +2462,7 @@
2538
2462
  },
2539
2463
  {
2540
2464
  "name": "next_os_tab",
2541
- "description": "Set the focus to the next window in the os tab. (WindowCommand)",
2542
- "inputSchema": {
2543
- "type": "object",
2544
- "properties": {}
2545
- }
2546
- },
2547
- {
2548
- "name": "next_pane",
2549
- "description": "Move focus to the next pane/group in the window (Sublime's focus_neighboring_group).",
2465
+ "description": "Set the focus to the next window in the os tab. (WindowCommand)",
2550
2466
  "inputSchema": {
2551
2467
  "type": "object",
2552
2468
  "properties": {}
@@ -2565,7 +2481,12 @@
2565
2481
  "description": "Switch to the next view/tab in the current group.",
2566
2482
  "inputSchema": {
2567
2483
  "type": "object",
2568
- "properties": {}
2484
+ "properties": {
2485
+ "extend": {
2486
+ "type": "boolean",
2487
+ "description": "As in Sublime's own keymap/menu."
2488
+ }
2489
+ }
2569
2490
  }
2570
2491
  },
2571
2492
  {
@@ -2610,7 +2531,15 @@
2610
2531
  "description": "Open the OS file manager at the directory containing the active file (WindowCommand).",
2611
2532
  "inputSchema": {
2612
2533
  "type": "object",
2613
- "properties": {}
2534
+ "properties": {
2535
+ "files": {
2536
+ "type": "array",
2537
+ "items": {
2538
+ "type": "string"
2539
+ },
2540
+ "description": "As in Sublime's own keymap/menu. Paths of the files whose folders to open."
2541
+ }
2542
+ }
2614
2543
  }
2615
2544
  },
2616
2545
  {
@@ -2722,7 +2651,12 @@
2722
2651
  "description": "Opens a recently opened file. (WindowCommand)",
2723
2652
  "inputSchema": {
2724
2653
  "type": "object",
2725
- "properties": {}
2654
+ "properties": {
2655
+ "index": {
2656
+ "type": "integer",
2657
+ "description": "The index of the recent file to open, 0 being the most recent. Without it the command does nothing."
2658
+ }
2659
+ }
2726
2660
  }
2727
2661
  },
2728
2662
  {
@@ -2797,7 +2731,12 @@
2797
2731
  "description": "Paste the clipboard contents at the cursor(s), replacing any selection.",
2798
2732
  "inputSchema": {
2799
2733
  "type": "object",
2800
- "properties": {}
2734
+ "properties": {
2735
+ "clipboard": {
2736
+ "type": "string",
2737
+ "description": "As in Sublime's own keymap/menu. The menu passes 'selection'."
2738
+ }
2739
+ }
2801
2740
  }
2802
2741
  },
2803
2742
  {
@@ -2829,7 +2768,17 @@
2829
2768
  "description": "Permute (shuffle) the lines in the current selection into a random order.",
2830
2769
  "inputSchema": {
2831
2770
  "type": "object",
2832
- "properties": {}
2771
+ "properties": {
2772
+ "operation": {
2773
+ "type": "string",
2774
+ "enum": [
2775
+ "shuffle",
2776
+ "reverse",
2777
+ "unique"
2778
+ ],
2779
+ "description": "Default shuffle."
2780
+ }
2781
+ }
2833
2782
  }
2834
2783
  },
2835
2784
  {
@@ -2837,7 +2786,17 @@
2837
2786
  "description": "Permute (shuffle) the selections themselves into a random order.",
2838
2787
  "inputSchema": {
2839
2788
  "type": "object",
2840
- "properties": {}
2789
+ "properties": {
2790
+ "operation": {
2791
+ "type": "string",
2792
+ "enum": [
2793
+ "shuffle",
2794
+ "reverse",
2795
+ "unique"
2796
+ ],
2797
+ "description": "Default shuffle. Needs several non-empty selections."
2798
+ }
2799
+ }
2841
2800
  }
2842
2801
  },
2843
2802
  {
@@ -2861,14 +2820,6 @@
2861
2820
  }
2862
2821
  }
2863
2822
  },
2864
- {
2865
- "name": "play_macro",
2866
- "description": "Alias of run_macro \u2014 play back the most recently recorded macro.",
2867
- "inputSchema": {
2868
- "type": "object",
2869
- "properties": {}
2870
- }
2871
- },
2872
2823
  {
2873
2824
  "name": "prev_bookmark",
2874
2825
  "description": "Move the cursor to the previous bookmark in the active view.",
@@ -2909,14 +2860,6 @@
2909
2860
  "properties": {}
2910
2861
  }
2911
2862
  },
2912
- {
2913
- "name": "prev_pane",
2914
- "description": "Move focus to the previous pane/group in the window (focus_neighboring_group, backwards).",
2915
- "inputSchema": {
2916
- "type": "object",
2917
- "properties": {}
2918
- }
2919
- },
2920
2863
  {
2921
2864
  "name": "prev_result",
2922
2865
  "description": "Jump to the previous find-in-files or build result. Visible in the view (cursor moves).",
@@ -2930,7 +2873,12 @@
2930
2873
  "description": "Switch to the previous view/tab in the current group.",
2931
2874
  "inputSchema": {
2932
2875
  "type": "object",
2933
- "properties": {}
2876
+ "properties": {
2877
+ "extend": {
2878
+ "type": "boolean",
2879
+ "description": "As in Sublime's own keymap/menu."
2880
+ }
2881
+ }
2934
2882
  }
2935
2883
  },
2936
2884
  {
@@ -3123,21 +3071,6 @@
3123
3071
  "properties": {}
3124
3072
  }
3125
3073
  },
3126
- {
3127
- "name": "quick_panel",
3128
- "description": "Open the Goto Anything overlay (WindowCommand show_overlay). Optional 'show_files' (bool) and 'text'.",
3129
- "inputSchema": {
3130
- "type": "object",
3131
- "properties": {
3132
- "show_files": {
3133
- "type": "boolean"
3134
- },
3135
- "text": {
3136
- "type": "string"
3137
- }
3138
- }
3139
- }
3140
- },
3141
3074
  {
3142
3075
  "name": "redo",
3143
3076
  "description": "Redo the last undone edit in the active file.",
@@ -3167,7 +3100,12 @@
3167
3100
  "description": "Re-indent the current selection(s) so each line's indentation matches its nesting depth.",
3168
3101
  "inputSchema": {
3169
3102
  "type": "object",
3170
- "properties": {}
3103
+ "properties": {
3104
+ "single_line": {
3105
+ "type": "boolean",
3106
+ "description": "As in Sublime's own keymap/menu."
3107
+ }
3108
+ }
3171
3109
  }
3172
3110
  },
3173
3111
  {
@@ -3246,20 +3184,17 @@
3246
3184
  }
3247
3185
  }
3248
3186
  },
3249
- {
3250
- "name": "reopen_closed_file",
3251
- "description": "Reopen the most recently closed file (File \u2192 Reopen Closed File).",
3252
- "inputSchema": {
3253
- "type": "object",
3254
- "properties": {}
3255
- }
3256
- },
3257
3187
  {
3258
3188
  "name": "reopen_last_file",
3259
3189
  "description": "Reopens the most recently closed file. (WindowCommand)",
3260
3190
  "inputSchema": {
3261
3191
  "type": "object",
3262
- "properties": {}
3192
+ "properties": {
3193
+ "source": {
3194
+ "type": "string",
3195
+ "description": "As in Sublime's own keymap/menu. The keymap passes 'window'."
3196
+ }
3197
+ }
3263
3198
  }
3264
3199
  },
3265
3200
  {
@@ -3267,7 +3202,12 @@
3267
3202
  "description": "Replaces all tokens in the view, which matches the pattern in the Find input field. (WindowCommand)",
3268
3203
  "inputSchema": {
3269
3204
  "type": "object",
3270
- "properties": {}
3205
+ "properties": {
3206
+ "close_panel": {
3207
+ "type": "boolean",
3208
+ "description": "As in Sublime's own keymap/menu."
3209
+ }
3210
+ }
3271
3211
  }
3272
3212
  },
3273
3213
  {
@@ -3278,49 +3218,6 @@
3278
3218
  "properties": {}
3279
3219
  }
3280
3220
  },
3281
- {
3282
- "name": "replace_in_files",
3283
- "description": "Fill the Find in Files panel and press its Replace button (Find in Files, Replace). Sublime then asks 'Confirm Replace': answer it with dismiss_native_window (action='button', button='Replace' or 'Cancel'). On Replace, the changes are made in the matching files' open buffers (the files open with unsaved changes); write them to disk with save_all. Same `where` syntax as find_in_files. Replace string may be empty for deletion. Regex capture-group backrefs ($1, $2) supported when regex=True.",
3284
- "inputSchema": {
3285
- "type": "object",
3286
- "properties": {
3287
- "pattern": {
3288
- "type": "string"
3289
- },
3290
- "replace": {
3291
- "type": "string",
3292
- "description": "Replacement string (use empty string for deletion)"
3293
- },
3294
- "where": {
3295
- "type": "string"
3296
- },
3297
- "case_sensitive": {
3298
- "type": "boolean",
3299
- "default": false
3300
- },
3301
- "regex": {
3302
- "type": "boolean",
3303
- "default": false
3304
- },
3305
- "whole_word": {
3306
- "type": "boolean",
3307
- "default": false
3308
- },
3309
- "preserve_case": {
3310
- "type": "boolean",
3311
- "default": false
3312
- },
3313
- "show_panel": {
3314
- "type": "boolean",
3315
- "default": true
3316
- }
3317
- },
3318
- "required": [
3319
- "pattern",
3320
- "replace"
3321
- ]
3322
- }
3323
- },
3324
3221
  {
3325
3222
  "name": "replace_lines",
3326
3223
  "description": "Replace lines begin through end (inclusive, 1-based) in the active file with text.\nPass path to target a specific open file regardless of which tab is focused.\nUse index (0-based, from get_open_files) to target a nameless tab by position.",
@@ -3542,6 +3439,10 @@
3542
3439
  "file": {
3543
3440
  "type": "string",
3544
3441
  "description": "The 'Packages/' relative path to the '.sublime-macro' file."
3442
+ },
3443
+ "hide_from_menu": {
3444
+ "type": "boolean",
3445
+ "description": "As in Sublime's own keymap/menu."
3545
3446
  }
3546
3447
  }
3547
3448
  }
@@ -3672,7 +3573,20 @@
3672
3573
  "description": "Runs the Sublime Text 'select' command. (WindowCommand)",
3673
3574
  "inputSchema": {
3674
3575
  "type": "object",
3675
- "properties": {}
3576
+ "properties": {
3577
+ "clear_to_right": {
3578
+ "type": "boolean",
3579
+ "description": "As in Sublime's own keymap/menu."
3580
+ },
3581
+ "extend": {
3582
+ "type": "boolean",
3583
+ "description": "As in Sublime's own keymap/menu."
3584
+ },
3585
+ "replace": {
3586
+ "type": "boolean",
3587
+ "description": "As in Sublime's own keymap/menu."
3588
+ }
3589
+ }
3676
3590
  }
3677
3591
  },
3678
3592
  {
@@ -3838,6 +3752,10 @@
3838
3752
  "file": {
3839
3753
  "type": "string",
3840
3754
  "description": "Accepts a 'Packages/' relative path to a sublime build file to set as the current build system. An empty string will set it to the 'Automatic' option as seen in 'Tools -> Build System'."
3755
+ },
3756
+ "index": {
3757
+ "type": "integer",
3758
+ "description": "As in Sublime's own menu, which passes 0, 1, 2, ... instead of file."
3841
3759
  }
3842
3760
  }
3843
3761
  }
@@ -3870,22 +3788,6 @@
3870
3788
  }
3871
3789
  }
3872
3790
  },
3873
- {
3874
- "name": "set_indent_spaces",
3875
- "description": "Set the active view to use spaces for indentation.",
3876
- "inputSchema": {
3877
- "type": "object",
3878
- "properties": {}
3879
- }
3880
- },
3881
- {
3882
- "name": "set_indent_tabs",
3883
- "description": "Set the active view to use tabs for indentation.",
3884
- "inputSchema": {
3885
- "type": "object",
3886
- "properties": {}
3887
- }
3888
- },
3889
3791
  {
3890
3792
  "name": "set_layout",
3891
3793
  "description": "Set the window pane layout. layout must be a ST layout dict with cols, rows, cells keys.",
@@ -4053,6 +3955,32 @@
4053
3955
  "properties": {}
4054
3956
  }
4055
3957
  },
3958
+ {
3959
+ "name": "show_overlay",
3960
+ "description": "Open one of Sublime's overlays (WindowCommand show_overlay), as its menu and keymap do. overlay is required: goto (Goto Anything; show_files=true is Ctrl+P, text=':' is Ctrl+G, text='@' is Ctrl+R, text='#' is Ctrl+;) or command_palette (Ctrl+Shift+P). The overlay stays open waiting for input: answer it with ui_type_text and ui_press_key, or close it with hide_overlay.",
3961
+ "inputSchema": {
3962
+ "type": "object",
3963
+ "properties": {
3964
+ "overlay": {
3965
+ "type": "string",
3966
+ "enum": [
3967
+ "goto",
3968
+ "command_palette"
3969
+ ]
3970
+ },
3971
+ "show_files": {
3972
+ "type": "boolean"
3973
+ },
3974
+ "text": {
3975
+ "type": "string",
3976
+ "description": "Text the overlay starts with."
3977
+ }
3978
+ },
3979
+ "required": [
3980
+ "overlay"
3981
+ ]
3982
+ }
3983
+ },
4056
3984
  {
4057
3985
  "name": "show_panel",
4058
3986
  "description": "Bring an output panel to the front. Use name='exec' for the build panel.",
@@ -4082,14 +4010,6 @@
4082
4010
  "properties": {}
4083
4011
  }
4084
4012
  },
4085
- {
4086
- "name": "shrink_selection",
4087
- "description": "Shrink a multi-cursor selection back to a single cursor (reverse of expand_selection).",
4088
- "inputSchema": {
4089
- "type": "object",
4090
- "properties": {}
4091
- }
4092
- },
4093
4013
  {
4094
4014
  "name": "single_selection",
4095
4015
  "description": "Collapse multiple selections/cursors down to a single selection (Escape equivalent).",
@@ -4161,14 +4081,6 @@
4161
4081
  }
4162
4082
  }
4163
4083
  },
4164
- {
4165
- "name": "split_line",
4166
- "description": "Split the line at the cursor position (Ctrl+Enter equivalent in some keymaps).",
4167
- "inputSchema": {
4168
- "type": "object",
4169
- "properties": {}
4170
- }
4171
- },
4172
4084
  {
4173
4085
  "name": "split_selection_into_lines",
4174
4086
  "description": "Split the current selection into one cursor per line (Ctrl+Shift+L).",
@@ -4268,7 +4180,15 @@
4268
4180
  "description": "Open the repository of the selected file/folder in Sublime Merge. (WindowCommand)",
4269
4181
  "inputSchema": {
4270
4182
  "type": "object",
4271
- "properties": {}
4183
+ "properties": {
4184
+ "paths": {
4185
+ "type": "array",
4186
+ "items": {
4187
+ "type": "string"
4188
+ },
4189
+ "description": "As in Sublime's own keymap/menu. Repository folders."
4190
+ }
4191
+ }
4272
4192
  }
4273
4193
  },
4274
4194
  {
@@ -4308,31 +4228,19 @@
4308
4228
  "description": "Switch between files with the same base name and different extensions (WindowCommand).",
4309
4229
  "inputSchema": {
4310
4230
  "type": "object",
4311
- "properties": {}
4312
- }
4313
- },
4314
- {
4315
- "name": "syntax_definition_compatability",
4316
- "description": "Checks to see the syntax compatability of the currently active <b>.sublime-syntax</b> file. Any incompatible regex patterns (which doesn't conform to sregex) is shown in an output panel. (WindowCommand)",
4317
- "inputSchema": {
4318
- "type": "object",
4319
- "properties": {}
4320
- }
4321
- },
4322
- {
4323
- "name": "syntax_definition_compatibility",
4324
- "description": "Check syntax definition compatibility (ApplicationCommand).",
4325
- "inputSchema": {
4326
- "type": "object",
4327
- "properties": {}
4328
- }
4329
- },
4330
- {
4331
- "name": "tab",
4332
- "description": "Indent the current selection by one indentation level (TextCommand). Equivalent to Tab when there is a selection.",
4333
- "inputSchema": {
4334
- "type": "object",
4335
- "properties": {}
4231
+ "properties": {
4232
+ "extensions": {
4233
+ "type": "array",
4234
+ "items": {
4235
+ "type": "string"
4236
+ },
4237
+ "description": "As in Sublime's own keymap/menu. Extensions to switch between, e.g. cpp."
4238
+ },
4239
+ "side_by_side": {
4240
+ "type": "boolean",
4241
+ "description": "As in Sublime's own keymap/menu."
4242
+ }
4243
+ }
4336
4244
  }
4337
4245
  },
4338
4246
  {
@@ -4351,14 +4259,6 @@
4351
4259
  "properties": {}
4352
4260
  }
4353
4261
  },
4354
- {
4355
- "name": "toggle_case",
4356
- "description": "Alias of swap_case \u2014 toggle the case of each character in the selection.",
4357
- "inputSchema": {
4358
- "type": "object",
4359
- "properties": {}
4360
- }
4361
- },
4362
4262
  {
4363
4263
  "name": "toggle_case_sensitive",
4364
4264
  "description": "Toggles the 'Case sensitive' flag in the Find/Replace/Incremental Find/Find in Files panel. (WindowCommand)",
@@ -4590,14 +4490,6 @@
4590
4490
  "properties": {}
4591
4491
  }
4592
4492
  },
4593
- {
4594
- "name": "transpose_chars",
4595
- "description": "Alias of transpose \u2014 swap the two characters adjacent to the cursor.",
4596
- "inputSchema": {
4597
- "type": "object",
4598
- "properties": {}
4599
- }
4600
- },
4601
4493
  {
4602
4494
  "name": "trim_trailing_white_space",
4603
4495
  "description": "Remove trailing whitespace from every line in the current selection (or the whole file if no selection).",
@@ -4606,22 +4498,6 @@
4606
4498
  "properties": {}
4607
4499
  }
4608
4500
  },
4609
- {
4610
- "name": "trim_whitespace",
4611
- "description": "Alias of trim_trailing_white_space \u2014 remove trailing whitespace from the selection/file.",
4612
- "inputSchema": {
4613
- "type": "object",
4614
- "properties": {}
4615
- }
4616
- },
4617
- {
4618
- "name": "trim_whitespaces",
4619
- "description": "Alias of trim_trailing_white_space \u2014 remove trailing whitespace from the selection/file.",
4620
- "inputSchema": {
4621
- "type": "object",
4622
- "properties": {}
4623
- }
4624
- },
4625
4501
  {
4626
4502
  "name": "ui_click",
4627
4503
  "description": "Click in one window of this Sublime Text process (Windows only) with the REAL mouse, because Sublime draws its own editor, command palette and popups and ignores posted mouse messages. x, y are pixels in the picture ui_screenshot returns for the same window (top-left is 0, 0). Because it moves the pointer of the person at the computer for a moment, it is REFUSED unless they have been idle for min_idle_s seconds (default 8), and refused unless the target window is the one under that point (another window in front would take the click). The pointer is restored afterwards. To click inside an open popup menu or other native popup, pass that menu's own hwnd from list_native_windows (x, y then count from the menu's top-left corner; ui_screenshot of the menu hwnd shows it). Pass wait_idle_s to wait for a busy person instead of refusing. button: left (default) or right; double=true double-clicks. Prefer keys (ui_press_key), pick_quick_panel and editor commands when they can do the job.",
@@ -4913,7 +4789,12 @@
4913
4789
  "description": "Convert leading spaces in the current selection (or whole file) to tabs, using the view's tab_size.",
4914
4790
  "inputSchema": {
4915
4791
  "type": "object",
4916
- "properties": {}
4792
+ "properties": {
4793
+ "set_translate_tabs": {
4794
+ "type": "boolean",
4795
+ "description": "As in Sublime's own keymap/menu."
4796
+ }
4797
+ }
4917
4798
  }
4918
4799
  },
4919
4800
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sublime-mcp",
3
- "version": "1.14.4",
3
+ "version": "1.15.0",
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": {