branch: externals/matlab-mode
commit 66e6c72602373cc474fca8f1d13ed19408372115
Author: John Ciolfi <john.ciolfi...@gmail.com>
Commit: John Ciolfi <john.ciolfi...@gmail.com>

    toolbox/emacsdocomplete.m: add support for MATLAB R2025a
---
 toolbox/emacsdocomplete.m | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/toolbox/emacsdocomplete.m b/toolbox/emacsdocomplete.m
index 8b28ad398d..e713b1e001 100644
--- a/toolbox/emacsdocomplete.m
+++ b/toolbox/emacsdocomplete.m
@@ -33,8 +33,30 @@ function emacsdocomplete(substring)
 
     if verNum >= 25 % R2025a and later
 
-        % Completions TBD
+        cmd = ['builtin(''_programmingAidsTest'', '''', ''', ...
+               substring, ''', ', num2str(length(substring)), ', [])'];
+        json = evalin('base', cmd);
+        completionInfo = jsondecode(json);
         disp(['Completions-Lisp:', newline, '''(']);
+        if strcmp(completionInfo.widgetType, 'completion')
+            useCellIndex = iscell(completionInfo.widgetData.choices);
+            nChoices = length(completionInfo.widgetData.choices);
+            for idx = 1 : nChoices
+                if useCellIndex
+                    entry = completionInfo.widgetData.choices{idx};
+                else
+                    entry = completionInfo.widgetData.choices(idx);
+                end
+                if isfield(entry, 'purpose')
+                    purpose = [entry.purpose, ' '];
+                else
+                    purpose = '';
+                end
+                desc = [purpose, '(' entry.matchType, ')'];
+                desc = regexprep(desc,'"', '\\"');
+                disp(['  ("', entry.completion, '" . "', desc, '")']);
+            end
+        end
         disp(')');
 
     else % R2024b and earlier

Reply via email to