branch: externals/matlab-mode commit ee545c207133a837332bc9a8cffdafd5b26e3b2d Author: John Ciolfi <john.ciolfi...@gmail.com> Commit: John Ciolfi <john.ciolfi...@gmail.com>
contributing/genBuiltinsHashTable.m: improve logging --- contributing/genBuiltinsHashTable.m | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/contributing/genBuiltinsHashTable.m b/contributing/genBuiltinsHashTable.m index 5b93e7940f..38f20894e8 100644 --- a/contributing/genBuiltinsHashTable.m +++ b/contributing/genBuiltinsHashTable.m @@ -61,7 +61,7 @@ function genBuiltinsHashTable nEntries = 0; for fcnStart = 'a' : 'z' - [ht, nEntries] = getHashTableEntries(fcnStart, ht, nEntries, logFID); + [ht, nEntries] = getHashTableEntries(fcnStart, ht, nEntries, logFID, 0); end ht = ['(defvar matlab-ts-mode--builtins-ht', newline, ... @@ -82,10 +82,11 @@ function genBuiltinsHashTable fprintf(1, "Created: %s\n", outFile); end -function [ht, nEntries] = getHashTableEntries(fcnStart, ht, nEntries, logFID) +function [ht, nEntries] = getHashTableEntries(fcnStart, ht, nEntries, logFID, frame) % Call emacsdocomplete(fcnStart) to get hash-table entries - fprintf(logFID, 'Capturing completions for: %s\n', fcnStart); + frame = frame + 1; + fprintf(logFID, '[%d] Capturing completions for: %s\n', frame, fcnStart); completionStr = evalc(['emacsdocomplete(''', fcnStart, ''')']); completions = split(completionStr, newline); @@ -137,12 +138,13 @@ function [ht, nEntries] = getHashTableEntries(fcnStart, ht, nEntries, logFID) 'class', ... 'keyword', 'variable', 'pathItem', 'mlappFile', 'mlxFile', ... 'mdlFile', 'slxFile', 'sscFile', 'sfxFile'} + comment = [' ;; (', entryType, ')']; desc = strtrim(m{1}{2}); if ~isempty(desc) - desc = [' ;;', desc]; %#ok<AGROW> + comment = [comment ' ', desc]; %#ok<AGROW> end - entry = [' "', thing, '" t', desc]; - fprintf(logFID, '%s\n', entry); + entry = [' "', thing, '" t', comment]; + fprintf(logFID, '[%d] entry: %s\n', frame, entry); ht = [ht, entry, newline]; %#ok<AGROW> nEntries = nEntries + 1; if strcmp(entryType, 'mFile') @@ -161,23 +163,23 @@ function [ht, nEntries] = getHashTableEntries(fcnStart, ht, nEntries, logFID) if isempty(regexp(thing, '\.internal$', 'once')) for fcnStart = 'a' : 'z' [ht, nEntries] = getHashTableEntries([thing, '.', fcnStart], ht, ... - nEntries, logFID); + nEntries, logFID, frame); end end case {'property', 'enumeration'} entry = [' "', thing, '" ''', entryType]; - fprintf(logFID, '%s\n', entry); + fprintf(logFID, '[%d] p/e-entry: %s\n', frame, entry); ht = [ht, entry, newline]; %#ok<AGROW> nEntries = nEntries + 1; case {'class', ... 'keyword', 'variable', 'pathItem', 'mlappFile', 'mlxFile', ... 'mdlFile', 'slxFile', 'sscFile', 'sfxFile'} - % 'class' and 'namespace' likely have items in them. Though variables, models, + % 'class' likely have items in them. Though variables, models, % etc. can hide namespaces. For example, simulink.slx is a model and we have % simulink namespace giving items like simulink.compiler.genapp. for fcnStart = 'a' : 'z' [ht, nEntries] = getHashTableEntries([thing, '.', fcnStart], ht, ... - nEntries, logFID); + nEntries, logFID, frame); end otherwise error(['assert - unhandled entryType: ', entryType]); @@ -187,7 +189,7 @@ function [ht, nEntries] = getHashTableEntries(fcnStart, ht, nEntries, logFID) end end - fprintf(logFID, 'nEntries = %d\n', nEntries); + fprintf(logFID, '[%d] nEntries = %d\n', frame, nEntries); end % LocalWords: emacsdocomplete builtins keymodels vdynblks vdynsolution mlapp mlx ssc sfx genapp tmp