Auto-Completion Is this Legal?
-
I seem to be having a little problem loading a pre-prepared xml. file for my Auto-Completion file, but it doesn’t seem to want to work. Now, unless I’m missing some typo somewhere, I was curious if having duplicate words, one that is just a keyword and one that is a function was why it may not be working. For Example:
<KeyWord name="COUNT"/> <KeyWord name="COUNT" func="yes"> <Overload retVal="{nVal}" descr="LocalSQL - Count(),for counting the number of values in a column that match specified criteria"> <Param name="column_name expC"/> </Overload> </KeyWord>
I have a couple of words/functions like that in this file. If this separation isn’t allowed, do I just make it an overload entry with no parameters?
Lee
-
As I showed you last week, the right way to have the same function name with differing parameter sets is to have multiple overloads inside
<KeyWord name="eval" func="yes"> <Overload retVal="" descr="catch exceptions or compile and run code"> <Param name="BLOCK" /> </Overload> <Overload retVal="" descr="catch exceptions or compile and run code"> <Param name="EXPR" /> </Overload> <Overload retVal="" descr="catch exceptions or compile and run code"> <Param name="" /> </Overload> </KeyWord>
So, in your case, you would want:
<KeyWord name="COUNT" func="yes"> <Overload retVal="" descr="something else" /><!-- or alternately, with an empty param inside, like in the Perl eval example --> <Overload retVal="{nVal}" descr="LocalSQL - Count(),for counting the number of values in a column that match specified criteria"> <Param name="column_name expC"/> </Overload> </KeyWord>
-
@peterjones , thanks, but here’s the problem that makes me think it might be a typo somewhere.
I have my test file, that has both those I showed above in it, and it works properly with no hiccup. Only my pre-prepared file has the problem. I listened and implemented as you showed me last week. I just happened to have added a bunch of other words, some of them the same as the Count example being both keyword for completion and keyword for funtion hint. That’s why I was confused why it was working in the test file, and not in the supposed production file.
That being said, I did implement a couple of things like you show above, for statements that can’t be triggered by a paren since they don’t use parens. dBASE has statements that take parameters, but aren’t actually functions and I was trying to figure out how to implement them, by piggybacking them on the actual duplicate function names that are triggered with parens.
I do like to uncomplicate it, so doing the overload for keywords only that have a like named function will work for me. I guess I better start searching for that typo then, because I had a great deal of the functions done and was trying to make sure before I went further that it would work. :( I had searched the forums for the possiblity of using multiple trigger keypresses since dBASE commands for their parameters only have a space, but read the answer in the forums that multiple triggers weren’t possible.
Thanks Peter.
-
@lycan-thrope
Here’s an example of what I was talking about. The methods of the OOP version have functions, but don’t necessarily take parameters, so the parens triggers the to show the descripion and required parameters, in this case, an object reference, but since most of time this would already be known while typing it’s redundant but at least it allows a use to be shown in the description, so I just took out the parameter to get this. The same can be done for the keyword completion of those other ones also, but I still think either a type of some strange character (I just found a Windows Registered trademark dingy) in the text areas.So hopefully, I’ll find the problem before I do anymore documentation on each so it’s easier to find what the problem is.
Lee
-
@lycan-thrope
I’ve spell-checked the code by cutting and pasting into a spellchecking editor. Nothing seemed to stick out.I then thought it might be the angle brackets that is in the “text sections” but in the test file, they work also…even if the FunctionList doesn’t show them, I suspect, due to the XML having a reserved word on those (<>).
Oddly the same for the duplicate words. In my test file, they worked just fine. Then, I thought, hmm…maybe the “desc” are too long violating the limit of 2,043 bytes for the entire Function, which, unless I’m mistaken, though some are verbose, none seems to exceed the limit The max I have is 816 characters for an overload of 3 large options like this:
<KeyWord name="KEYMATCH" func="yes"> <Overload retVal="{lVal}" descr="Xbase - Indicates if a specified expression is found in an index. Using <var exp> only"> <Param name="<var exp>"/> </Overload> <Overload retVal="{lVal}" descr="Xbase - Indicates if a specified expression is found in an index. Using <index position expN>"> <Param name="<var exp>"/> <Param name="[<index position expN>]"/> <Param name="<tag expN>"/> <Param name="[<alias>]]"/> </Overload> <Overload retVal="{lVal}" descr="Xbase - Indicates if a specified expression is found in an index. Using [<.mdx filename expC>] "> <Param name="var exp"/> <Param name="[<.mdx filename expC>]"/> <Param name="<tag expN>"/> <Param name="[<alias>]]"/> </Overload> </KeyWord>
- as I understand that the spaces count towards the byte count at 1 char per byte, and even with CR/LF character counts that should be well below the 2,043 limit.
So I’m still searching for the reason it’s not working. I will continue to look at the consolidation of the keyword/function duplicates, but I don’t think that’s the culprit either. Just for giggles, here is the test file I have so far that works, followed by the one that doesn’t, and it’s quite large, something like 1200 lines, with most of them further down, just the skeletons with the function names in the “name=” spot for it.
I had tried posting the code for the working and non-working files but found out what the posting limit is. :(
Lee
-
@lycan-thrope
Incidentally, I tried the XML Tools plugin, ran a check and it was choking on the, aforementioned “<” and “>” characters saying they weren’t legal. They also, apparently, keep the FunctionList from seeing the parameters inside them as this screenshot shows:
The opening bracket shows on the left, but nothing is after it, as the function parameters on the right shows the < and >.However, in the following screenshot, the testfile that has the same text shows the same function hint on screen, including the < and >:
So, that shouldn’t be an issue, even if the XML Tools stopped at the first < insisting it’s not legal, even though the parser for the test file, obviously sees it, interprets it properly, and displays it.
The angle brackets are being used since it is how the dBASE syntax shows “required” parameters and I’m trying to stay consistent with the currently known way of presenting the syntax in the hints. So that shouldn’t be the reason I can’t get my production file working. I do know, that the file takes a little while to load, but heck, all the autocompletion files take a little while to load unless they’re really short, which is why I was wondering if the size and large text descriptions are hitting some kind of a limit wall I’m not aware of. My largest function hint with 3 overloads and all the white space is 1,013 bytes/characters long, so it shouldn’t be hitting the 2,043 byte limit.
I’ll still look for what might be a mispelling somewhere, but I’m not seeing, but am just posting the progress in case these are limiting factors that I’m just not aware of.
Thanks for any help you may think of.
Lee
-
@lycan-thrope
Let’s see if this survives. This is the plain bones autocompletion file using only keywords and no functions, and it doesn’t work. I’ve sorted it Lexicographically ascending, and it is not case sensitive:<?xml version="1.0" encoding="Windows-1252" ?> <NotepadPlus> <AutoComplete language="dBASEPlus"> <Environment ignoreCase="yes" startFunc="(" stopFunc=")" paramSeparator="," terminal="" additionalWordChar = ""/> <KeyWord name="#define"/> <KeyWord name="#else"/> <KeyWord name="#endif"/> <KeyWord name="#if"/> <KeyWord name="#ifdef"/> <KeyWord name="#ifndef"/> <KeyWord name="#include"/> <KeyWord name="#pragma"/> <KeyWord name="#undef"/> <KeyWord name="ABS"/> <KeyWord name="ACCESS"/> <KeyWord name="ACOPY"/> <KeyWord name="ACOS"/> <KeyWord name="ADEL"/> <KeyWord name="ADIR"/> <KeyWord name="ADIREXT"/> <KeyWord name="AELEMENT"/> <KeyWord name="AFIELDS"/> <KeyWord name="AFILL"/> <KeyWord name="AGROW"/> <KeyWord name="AINS"/> <KeyWord name="ALEN"/> <KeyWord name="ALIAS"/> <KeyWord name="ALTER TABLE"/> <KeyWord name="ANSI"/> <KeyWord name="APPEND"/> <KeyWord name="APPEND AUTOMEM"/> <KeyWord name="APPEND FROM"/> <KeyWord name="APPEND FROM ARRAY"/> <KeyWord name="APPEND MEMO"/> <KeyWord name="ARESIZE"/> <KeyWord name="ARGCOUNT"/> <KeyWord name="ARGVECTOR"/> <KeyWord name="ASC"/> <KeyWord name="ASCAN"/> <KeyWord name="ASIN"/> <KeyWord name="ASORT"/> <KeyWord name="ASUBSCRIPT"/> <KeyWord name="AT"/> <KeyWord name="ATAN"/> <KeyWord name="ATN2"/> <KeyWord name="AVERAGE"/> <KeyWord name="AVG"/> <KeyWord name="BEGINTRANS"/> <KeyWord name="BINTYPE"/> <KeyWord name="BITAND"/> <KeyWord name="BITLSHIFT"/> <KeyWord name="BITNOT"/> <KeyWord name="BITOR"/> <KeyWord name="BITRSHIFT"/> <KeyWord name="BITSET"/> <KeyWord name="BITXOR"/> <KeyWord name="BITZRSHIFT"/> <KeyWord name="BLANK"/> <KeyWord name="BOF"/> <KeyWord name="BOOKMARK"/> <KeyWord name="BROWSE"/> <KeyWord name="CALCULATE"/> <KeyWord name="CALLBACK"/> <KeyWord name="CANCEL"/> <KeyWord name="CATCH"/> <KeyWord name="CD"/> <KeyWord name="CDOW"/> <KeyWord name="CEILING"/> <KeyWord name="CENTER"/> <KeyWord name="CERROR"/> <KeyWord name="CHANGE"/> <KeyWord name="CHARSET"/> <KeyWord name="CHOOSEPRINTER"/> <KeyWord name="CHR"/> <KeyWord name="CLASS"/> <KeyWord name="CLEAR"/> <KeyWord name="CLEAR ALL"/> <KeyWord name="CLEAR AUTOMEM"/> <KeyWord name="CLEAR FIELDS"/> <KeyWord name="CLEAR MEMORY"/> <KeyWord name="CLEAR PROGRAM"/> <KeyWord name="CLOSE ALTERNATE"/> <KeyWord name="CLOSE DATABASES"/> <KeyWord name="CLOSE INDEXES"/> <KeyWord name="CLOSE PRINTER"/> <KeyWord name="CLOSE TABLES"/> <KeyWord name="CMONTH"/> <KeyWord name="COMMIT"/> <KeyWord name="CONTINUE"/> <KeyWord name="COPY"/> <KeyWord name="COPY BINARY"/> <KeyWord name="COPY FILE"/> <KeyWord name="COPY MEMO"/> <KeyWord name="COPY STRUCTURE"/> <KeyWord name="COPY STRUCTURE EXTENDED"/> <KeyWord name="COPY TABLE"/> <KeyWord name="COPY TO ARRAY"/> <KeyWord name="COS"/> <KeyWord name="COUNT"/> <KeyWord name="COUNT"/> <KeyWord name="CREATE INDEX"/> <KeyWord name="CREATE SESSION"/> <KeyWord name="CREATE TABLE"/> <KeyWord name="CREATE...FROM"/> <KeyWord name="CREATE...STRUCTURE EXTENDED"/> <KeyWord name="CTOD"/> <KeyWord name="CTODT"/> <KeyWord name="CTOT"/> <KeyWord name="DATABASE"/> <KeyWord name="DATE"/> <KeyWord name="DATETIME"/> <KeyWord name="DAY"/> <KeyWord name="DBASE_SUPPRESS_STARTUP_DIALOGS"/> <KeyWord name="DBERROR"/> <KeyWord name="DBF"/> <KeyWord name="DBMESSAGE"/> <KeyWord name="DECLARE"/> <KeyWord name="DEFINE"/> <KeyWord name="DELETE"/> <KeyWord name="DELETE FILE"/> <KeyWord name="DELETE TABLE"/> <KeyWord name="DELETE TAG"/> <KeyWord name="DELETED"/> <KeyWord name="DESCENDING"/> <KeyWord name="DIFFERENCE"/> <KeyWord name="DIR "/> <KeyWord name="DISKSPACE"/> <KeyWord name="DISPLAY"/> <KeyWord name="DISPLAY FILES"/> <KeyWord name="DMY"/> <KeyWord name="DO"/> <KeyWord name="DO CASE"/> <KeyWord name="DO WHILE"/> <KeyWord name="DO...UNTIL"/> <KeyWord name="DOS "/> <KeyWord name="DOW"/> <KeyWord name="DROP INDEX"/> <KeyWord name="DROP TABLE"/> <KeyWord name="DTOC"/> <KeyWord name="DTODT"/> <KeyWord name="DTOR"/> <KeyWord name="DTOS"/> <KeyWord name="DTTOC"/> <KeyWord name="DTTOD"/> <KeyWord name="DTTOT"/> <KeyWord name="EDIT"/> <KeyWord name="EJECT"/> <KeyWord name="EJECTPAGE"/> <KeyWord name="ELAPSED"/> <KeyWord name="ELSE"/> <KeyWord name="ELSEIF"/> <KeyWord name="EMPTY"/> <KeyWord name="ENDFOR"/> <KeyWord name="ENDIF"/> <KeyWord name="ENDPRINTJOB"/> <KeyWord name="ENDTRY"/> <KeyWord name="ENUMERATE"/> <KeyWord name="EOF"/> <KeyWord name="ERASE"/> <KeyWord name="ERROR"/> <KeyWord name="EXIT"/> <KeyWord name="EXP"/> <KeyWord name="EXTERN"/> <KeyWord name="EXTRACT"/> <KeyWord name="FDECIMAL"/> <KeyWord name="FIELD"/> <KeyWord name="FILE"/> <KeyWord name="FINALLY"/> <KeyWord name="FINDINSTANCE"/> <KeyWord name="FLDCOUNT"/> <KeyWord name="FLDLIST"/> <KeyWord name="FLENGTH"/> <KeyWord name="FLOCK"/> <KeyWord name="FLOOR"/> <KeyWord name="FLUSH"/> <KeyWord name="FNAMEMAX"/> <KeyWord name="FOR"/> <KeyWord name="FOR"/> <KeyWord name="FOUND"/> <KeyWord name="FROM"/> <KeyWord name="FUNCTION"/> <KeyWord name="FUNIQUE"/> <KeyWord name="FV"/> <KeyWord name="GENERATE"/> <KeyWord name="GETCALLADDRESS"/> <KeyWord name="GETDIRECTORY"/> <KeyWord name="GETENV"/> <KeyWord name="GETFILE"/> <KeyWord name="GO"/> <KeyWord name="GROUP BY"/> <KeyWord name="HAVING"/> <KeyWord name="HOME"/> <KeyWord name="HTOI"/> <KeyWord name="ID"/> <KeyWord name="IF"/> <KeyWord name="IIF"/> <KeyWord name="INDEX"/> <KeyWord name="INSERT"/> <KeyWord name="INT"/> <KeyWord name="ISALPHA"/> <KeyWord name="ISBLANK"/> <KeyWord name="ISLOWER"/> <KeyWord name="ISTABLE"/> <KeyWord name="ISUPPER"/> <KeyWord name="ITOH"/> <KeyWord name="KEY"/> <KeyWord name="KEYMATCH"/> <KeyWord name="LDRIVER"/> <KeyWord name="LEFT"/> <KeyWord name="LEN"/> <KeyWord name="LENNUM"/> <KeyWord name="LIKE"/> <KeyWord name="LINENO"/> <KeyWord name="LIST"/> <KeyWord name="LIST FILES"/> <KeyWord name="LKSYS"/> <KeyWord name="LOAD DLL"/> <KeyWord name="LOCAL"/> <KeyWord name="LOCATE"/> <KeyWord name="LOCK"/> <KeyWord name="LOG"/> <KeyWord name="LOG10"/> <KeyWord name="LOGOUT"/> <KeyWord name="LOOKUP"/> <KeyWord name="LOOP"/> <KeyWord name="LOWER"/> <KeyWord name="LTRIM"/> <KeyWord name="LUPDATE"/> <KeyWord name="MAX"/> <KeyWord name="MAX"/> <KeyWord name="MD"/> <KeyWord name="MDX"/> <KeyWord name="MDY"/> <KeyWord name="MEMLINES"/> <KeyWord name="MEMORY"/> <KeyWord name="MESSAGE"/> <KeyWord name="MIN"/> <KeyWord name="MIN"/> <KeyWord name="MKDIR"/> <KeyWord name="MLINE"/> <KeyWord name="MOD"/> <KeyWord name="MONTH"/> <KeyWord name="NDX"/> <KeyWord name="NETWORK"/> <KeyWord name="OEM"/> <KeyWord name="ON ERROR"/> <KeyWord name="ON NETERROR"/> <KeyWord name="ON PAGE"/> <KeyWord name="OPEN DATABASE"/> <KeyWord name="ORDER"/> <KeyWord name="ORDER BY"/> <KeyWord name="OS"/> <KeyWord name="OTHERWISE"/> <KeyWord name="PACK"/> <KeyWord name="PARAMETERS"/> <KeyWord name="PAYMENT"/> <KeyWord name="PCOL"/> <KeyWord name="PCOUNT"/> <KeyWord name="PI"/> <KeyWord name="PLAY SOUND"/> <KeyWord name="PRINTJOB"/> <KeyWord name="PRINTSTATUS"/> <KeyWord name="PRIVATE"/> <KeyWord name="PROCEDURE"/> <KeyWord name="PROCREFCOUNT"/> <KeyWord name="PROGRAM"/> <KeyWord name="PROPER"/> <KeyWord name="PROTECT"/> <KeyWord name="PROW"/> <KeyWord name="PUBLIC"/> <KeyWord name="PUTFILE"/> <KeyWord name="PV"/> <KeyWord name="QUIT"/> <KeyWord name="RANDOM"/> <KeyWord name="RAT"/> <KeyWord name="RECALL"/> <KeyWord name="RECCOUNT"/> <KeyWord name="RECNO"/> <KeyWord name="RECSIZE"/> <KeyWord name="REDEFINE"/> <KeyWord name="REFCOUNT"/> <KeyWord name="REFRESH"/> <KeyWord name="REINDEX"/> <KeyWord name="RELATION"/> <KeyWord name="RELEASE"/> <KeyWord name="RELEASE AUTOMEM"/> <KeyWord name="RELEASE CALLBACK"/> <KeyWord name="RELEASE DLL"/> <KeyWord name="RELEASE OBJECT"/> <KeyWord name="RENAME"/> <KeyWord name="RENAME TABLE"/> <KeyWord name="REPLACE"/> <KeyWord name="REPLACE AUTOMEM"/> <KeyWord name="REPLACE BINARY"/> <KeyWord name="REPLACE FROM ARRAY"/> <KeyWord name="REPLACE MEMO"/> <KeyWord name="REPLACE OLE"/> <KeyWord name="REPLICATE"/> <KeyWord name="RESOURCE"/> <KeyWord name="RESTORE"/> <KeyWord name="RESTORE IMAGE"/> <KeyWord name="RESUME"/> <KeyWord name="RETRY"/> <KeyWord name="RETURN"/> <KeyWord name="RIGHT"/> <KeyWord name="RLOCK"/> <KeyWord name="RMDIR"/> <KeyWord name="ROLLBACK"/> <KeyWord name="ROUND"/> <KeyWord name="RTOD"/> <KeyWord name="RTRIM"/> <KeyWord name="RUN"/> <KeyWord name="RUN"/> <KeyWord name="SAVE"/> <KeyWord name="SAVE TO"/> <KeyWord name="SCAN"/> <KeyWord name="SECONDS"/> <KeyWord name="SEEK"/> <KeyWord name="SEEK"/> <KeyWord name="SELECT"/> <KeyWord name="SELECT"/> <KeyWord name="SET"/> <KeyWord name="SET ALTERNATE"/> <KeyWord name="SET AUTOSAVE"/> <KeyWord name="SET CENTURY"/> <KeyWord name="SET CONSOLE"/> <KeyWord name="SET CURRENCY"/> <KeyWord name="SET DATABASE"/> <KeyWord name="SET DATE"/> <KeyWord name="SET DATE TO"/> <KeyWord name="SET DBTYPE"/> <KeyWord name="SET DECIMALS"/> <KeyWord name="SET DELETED"/> <KeyWord name="SET DIRECTORY"/> <KeyWord name="SET ENCRYPTION"/> <KeyWord name="SET EPOCH"/> <KeyWord name="SET ERROR"/> <KeyWord name="SET EXACT"/> <KeyWord name="SET EXCLUSIVE"/> <KeyWord name="SET FIELDS"/> <KeyWord name="SET FILTER"/> <KeyWord name="SET FULLPATH"/> <KeyWord name="SET HEADINGS"/> <KeyWord name="SET HELP"/> <KeyWord name="SET HIGHPRECISION"/> <KeyWord name="SET HOURS"/> <KeyWord name="SET INDEX"/> <KeyWord name="SET KEY TO"/> <KeyWord name="SET LDCHECK"/> <KeyWord name="SET LDCONVERT"/> <KeyWord name="SET LOCK"/> <KeyWord name="SET MARGIN"/> <KeyWord name="SET MARK"/> <KeyWord name="SET MEMOWIDTH"/> <KeyWord name="SET NEAR"/> <KeyWord name="SET ODOMETER"/> <KeyWord name="SET ORDER"/> <KeyWord name="SET PATH"/> <KeyWord name="SET PCOL"/> <KeyWord name="SET POINT"/> <KeyWord name="SET PRECISION"/> <KeyWord name="SET PRINTER"/> <KeyWord name="SET PROW"/> <KeyWord name="SET REFRESH"/> <KeyWord name="SET RELATION"/> <KeyWord name="SET REPROCESS"/> <KeyWord name="SET SAFETY"/> <KeyWord name="SET SEPARATOR"/> <KeyWord name="SET SKIP"/> <KeyWord name="SET SPACE"/> <KeyWord name="SET TIME"/> <KeyWord name="SET UNIQUE"/> <KeyWord name="SET VIEW"/> <KeyWord name="SETTO"/> <KeyWord name="SIGN"/> <KeyWord name="SIN"/> <KeyWord name="SKIP"/> <KeyWord name="SORT"/> <KeyWord name="SOUNDEX"/> <KeyWord name="SPACE"/> <KeyWord name="SQLERROR"/> <KeyWord name="SQLEXEC"/> <KeyWord name="SQLMESSAGE"/> <KeyWord name="SQRT"/> <KeyWord name="STATIC"/> <KeyWord name="STORE"/> <KeyWord name="STORE AUTOMEM"/> <KeyWord name="STR"/> <KeyWord name="STUFF"/> <KeyWord name="SUBSTR"/> <KeyWord name="SUBSTRING"/> <KeyWord name="SUM"/> <KeyWord name="SUM"/> <KeyWord name="SUSPEND"/> <KeyWord name="TAG"/> <KeyWord name="TAGCOUNT"/> <KeyWord name="TAGNO"/> <KeyWord name="TAN"/> <KeyWord name="TARGET"/> <KeyWord name="THROW"/> <KeyWord name="TOTAL"/> <KeyWord name="TRANSFORM"/> <KeyWord name="TRIM"/> <KeyWord name="TRIP"/> <KeyWord name="TRY"/> <KeyWord name="TTIME"/> <KeyWord name="TTOC"/> <KeyWord name="TYPE"/> <KeyWord name="TYPE"/> <KeyWord name="UNION"/> <KeyWord name="UNIQUE"/> <KeyWord name="UNLOCK"/> <KeyWord name="UPDATE"/> <KeyWord name="UPDATE ON"/> <KeyWord name="UPPER"/> <KeyWord name="USE"/> <KeyWord name="USER"/> <KeyWord name="UTC"/> <KeyWord name="VAL"/> <KeyWord name="VALIDDRIVE"/> <KeyWord name="VERSION"/> <KeyWord name="WHERE"/> <KeyWord name="WITH"/> <KeyWord name="WORKAREA"/> <KeyWord name="YEAR"/> <KeyWord name="ZAP"/> <KeyWord name="__dbasewin__"/> <KeyWord name="__vdb__"/> <KeyWord name="__version__"/> </AutoComplete> </NotepadPlus>
Anybody see an issue here with just these keywords, sorting, characters?
Lee
-
@lycan-thrope
I thought I had found the problem after looking at this again, and found “…” and replaced them with the string " " but it didn’t matter, it still didn’t work. :( Here’s the modified fixed one:<?xml version="1.0" encoding="Windows-1252" ?> <NotepadPlus> <AutoComplete language="dBASEPlus"> <Environment ignoreCase="yes" startFunc="(" stopFunc=")" paramSeparator="," terminal="" additionalWordChar = ""/> <KeyWord name="#define"/> <KeyWord name="#else"/> <KeyWord name="#endif"/> <KeyWord name="#if"/> <KeyWord name="#ifdef"/> <KeyWord name="#ifndef"/> <KeyWord name="#include"/> <KeyWord name="#pragma"/> <KeyWord name="#undef"/> <KeyWord name="ABS"/> <KeyWord name="ACCESS"/> <KeyWord name="ACOPY"/> <KeyWord name="ACOS"/> <KeyWord name="ADEL"/> <KeyWord name="ADIR"/> <KeyWord name="ADIREXT"/> <KeyWord name="AELEMENT"/> <KeyWord name="AFIELDS"/> <KeyWord name="AFILL"/> <KeyWord name="AGROW"/> <KeyWord name="AINS"/> <KeyWord name="ALEN"/> <KeyWord name="ALIAS"/> <KeyWord name="ALTER TABLE"/> <KeyWord name="ANSI"/> <KeyWord name="APPEND"/> <KeyWord name="APPEND AUTOMEM"/> <KeyWord name="APPEND FROM"/> <KeyWord name="APPEND FROM ARRAY"/> <KeyWord name="APPEND MEMO"/> <KeyWord name="ARESIZE"/> <KeyWord name="ARGCOUNT"/> <KeyWord name="ARGVECTOR"/> <KeyWord name="ASC"/> <KeyWord name="ASCAN"/> <KeyWord name="ASIN"/> <KeyWord name="ASORT"/> <KeyWord name="ASUBSCRIPT"/> <KeyWord name="AT"/> <KeyWord name="ATAN"/> <KeyWord name="ATN2"/> <KeyWord name="AVERAGE"/> <KeyWord name="AVG"/> <KeyWord name="BEGINTRANS"/> <KeyWord name="BINTYPE"/> <KeyWord name="BITAND"/> <KeyWord name="BITLSHIFT"/> <KeyWord name="BITNOT"/> <KeyWord name="BITOR"/> <KeyWord name="BITRSHIFT"/> <KeyWord name="BITSET"/> <KeyWord name="BITXOR"/> <KeyWord name="BITZRSHIFT"/> <KeyWord name="BLANK"/> <KeyWord name="BOF"/> <KeyWord name="BOOKMARK"/> <KeyWord name="BROWSE"/> <KeyWord name="CALCULATE"/> <KeyWord name="CALLBACK"/> <KeyWord name="CANCEL"/> <KeyWord name="CATCH"/> <KeyWord name="CD"/> <KeyWord name="CDOW"/> <KeyWord name="CEILING"/> <KeyWord name="CENTER"/> <KeyWord name="CERROR"/> <KeyWord name="CHANGE"/> <KeyWord name="CHARSET"/> <KeyWord name="CHOOSEPRINTER"/> <KeyWord name="CHR"/> <KeyWord name="CLASS"/> <KeyWord name="CLEAR"/> <KeyWord name="CLEAR ALL"/> <KeyWord name="CLEAR AUTOMEM"/> <KeyWord name="CLEAR FIELDS"/> <KeyWord name="CLEAR MEMORY"/> <KeyWord name="CLEAR PROGRAM"/> <KeyWord name="CLOSE ALTERNATE"/> <KeyWord name="CLOSE DATABASES"/> <KeyWord name="CLOSE INDEXES"/> <KeyWord name="CLOSE PRINTER"/> <KeyWord name="CLOSE TABLES"/> <KeyWord name="CMONTH"/> <KeyWord name="COMMIT"/> <KeyWord name="CONTINUE"/> <KeyWord name="COPY"/> <KeyWord name="COPY BINARY"/> <KeyWord name="COPY FILE"/> <KeyWord name="COPY MEMO"/> <KeyWord name="COPY STRUCTURE"/> <KeyWord name="COPY STRUCTURE EXTENDED"/> <KeyWord name="COPY TABLE"/> <KeyWord name="COPY TO ARRAY"/> <KeyWord name="COS"/> <KeyWord name="COUNT"/> <KeyWord name="CREATE INDEX"/> <KeyWord name="CREATE SESSION"/> <KeyWord name="CREATE TABLE"/> <KeyWord name="CREATE FROM"/> <KeyWord name="CREATE STRUCTURE EXTENDED"/> <KeyWord name="CTOD"/> <KeyWord name="CTODT"/> <KeyWord name="CTOT"/> <KeyWord name="DATABASE"/> <KeyWord name="DATE"/> <KeyWord name="DATETIME"/> <KeyWord name="DAY"/> <KeyWord name="DBASE_SUPPRESS_STARTUP_DIALOGS"/> <KeyWord name="DBERROR"/> <KeyWord name="DBF"/> <KeyWord name="DBMESSAGE"/> <KeyWord name="DECLARE"/> <KeyWord name="DEFINE"/> <KeyWord name="DELETE"/> <KeyWord name="DELETE FILE"/> <KeyWord name="DELETE TABLE"/> <KeyWord name="DELETE TAG"/> <KeyWord name="DELETED"/> <KeyWord name="DESCENDING"/> <KeyWord name="DIFFERENCE"/> <KeyWord name="DIR "/> <KeyWord name="DISKSPACE"/> <KeyWord name="DISPLAY"/> <KeyWord name="DISPLAY FILES"/> <KeyWord name="DMY"/> <KeyWord name="DO"/> <KeyWord name="DO CASE"/> <KeyWord name="DO WHILE"/> <KeyWord name="DO UNTIL"/> <KeyWord name="DOS "/> <KeyWord name="DOW"/> <KeyWord name="DROP INDEX"/> <KeyWord name="DROP TABLE"/> <KeyWord name="DTOC"/> <KeyWord name="DTODT"/> <KeyWord name="DTOR"/> <KeyWord name="DTOS"/> <KeyWord name="DTTOC"/> <KeyWord name="DTTOD"/> <KeyWord name="DTTOT"/> <KeyWord name="EDIT"/> <KeyWord name="EJECT"/> <KeyWord name="EJECTPAGE"/> <KeyWord name="ELAPSED"/> <KeyWord name="ELSE"/> <KeyWord name="ELSEIF"/> <KeyWord name="EMPTY"/> <KeyWord name="ENDFOR"/> <KeyWord name="ENDIF"/> <KeyWord name="ENDPRINTJOB"/> <KeyWord name="ENDTRY"/> <KeyWord name="ENUMERATE"/> <KeyWord name="EOF"/> <KeyWord name="ERASE"/> <KeyWord name="ERROR"/> <KeyWord name="EXIT"/> <KeyWord name="EXP"/> <KeyWord name="EXTERN"/> <KeyWord name="EXTRACT"/> <KeyWord name="FDECIMAL"/> <KeyWord name="FIELD"/> <KeyWord name="FILE"/> <KeyWord name="FINALLY"/> <KeyWord name="FINDINSTANCE"/> <KeyWord name="FLDCOUNT"/> <KeyWord name="FLDLIST"/> <KeyWord name="FLENGTH"/> <KeyWord name="FLOCK"/> <KeyWord name="FLOOR"/> <KeyWord name="FLUSH"/> <KeyWord name="FNAMEMAX"/> <KeyWord name="FOR"/> <KeyWord name="FOR"/> <KeyWord name="FOUND"/> <KeyWord name="FROM"/> <KeyWord name="FUNCTION"/> <KeyWord name="FUNIQUE"/> <KeyWord name="FV"/> <KeyWord name="GENERATE"/> <KeyWord name="GETCALLADDRESS"/> <KeyWord name="GETDIRECTORY"/> <KeyWord name="GETENV"/> <KeyWord name="GETFILE"/> <KeyWord name="GO"/> <KeyWord name="GROUP BY"/> <KeyWord name="HAVING"/> <KeyWord name="HOME"/> <KeyWord name="HTOI"/> <KeyWord name="ID"/> <KeyWord name="IF"/> <KeyWord name="IIF"/> <KeyWord name="INDEX"/> <KeyWord name="INSERT"/> <KeyWord name="INT"/> <KeyWord name="ISALPHA"/> <KeyWord name="ISBLANK"/> <KeyWord name="ISLOWER"/> <KeyWord name="ISTABLE"/> <KeyWord name="ISUPPER"/> <KeyWord name="ITOH"/> <KeyWord name="KEY"/> <KeyWord name="KEYMATCH"/> <KeyWord name="LDRIVER"/> <KeyWord name="LEFT"/> <KeyWord name="LEN"/> <KeyWord name="LENNUM"/> <KeyWord name="LIKE"/> <KeyWord name="LINENO"/> <KeyWord name="LIST"/> <KeyWord name="LIST FILES"/> <KeyWord name="LKSYS"/> <KeyWord name="LOAD DLL"/> <KeyWord name="LOCAL"/> <KeyWord name="LOCATE"/> <KeyWord name="LOCK"/> <KeyWord name="LOG"/> <KeyWord name="LOG10"/> <KeyWord name="LOGOUT"/> <KeyWord name="LOOKUP"/> <KeyWord name="LOOP"/> <KeyWord name="LOWER"/> <KeyWord name="LTRIM"/> <KeyWord name="LUPDATE"/> <KeyWord name="MAX"/> <KeyWord name="MAX"/> <KeyWord name="MD"/> <KeyWord name="MDX"/> <KeyWord name="MDY"/> <KeyWord name="MEMLINES"/> <KeyWord name="MEMORY"/> <KeyWord name="MESSAGE"/> <KeyWord name="MIN"/> <KeyWord name="MIN"/> <KeyWord name="MKDIR"/> <KeyWord name="MLINE"/> <KeyWord name="MOD"/> <KeyWord name="MONTH"/> <KeyWord name="NDX"/> <KeyWord name="NETWORK"/> <KeyWord name="OEM"/> <KeyWord name="ON ERROR"/> <KeyWord name="ON NETERROR"/> <KeyWord name="ON PAGE"/> <KeyWord name="OPEN DATABASE"/> <KeyWord name="ORDER"/> <KeyWord name="ORDER BY"/> <KeyWord name="OS"/> <KeyWord name="OTHERWISE"/> <KeyWord name="PACK"/> <KeyWord name="PARAMETERS"/> <KeyWord name="PAYMENT"/> <KeyWord name="PCOL"/> <KeyWord name="PCOUNT"/> <KeyWord name="PI"/> <KeyWord name="PLAY SOUND"/> <KeyWord name="PRINTJOB"/> <KeyWord name="PRINTSTATUS"/> <KeyWord name="PRIVATE"/> <KeyWord name="PROCEDURE"/> <KeyWord name="PROCREFCOUNT"/> <KeyWord name="PROGRAM"/> <KeyWord name="PROPER"/> <KeyWord name="PROTECT"/> <KeyWord name="PROW"/> <KeyWord name="PUBLIC"/> <KeyWord name="PUTFILE"/> <KeyWord name="PV"/> <KeyWord name="QUIT"/> <KeyWord name="RANDOM"/> <KeyWord name="RAT"/> <KeyWord name="RECALL"/> <KeyWord name="RECCOUNT"/> <KeyWord name="RECNO"/> <KeyWord name="RECSIZE"/> <KeyWord name="REDEFINE"/> <KeyWord name="REFCOUNT"/> <KeyWord name="REFRESH"/> <KeyWord name="REINDEX"/> <KeyWord name="RELATION"/> <KeyWord name="RELEASE"/> <KeyWord name="RELEASE AUTOMEM"/> <KeyWord name="RELEASE CALLBACK"/> <KeyWord name="RELEASE DLL"/> <KeyWord name="RELEASE OBJECT"/> <KeyWord name="RENAME"/> <KeyWord name="RENAME TABLE"/> <KeyWord name="REPLACE"/> <KeyWord name="REPLACE AUTOMEM"/> <KeyWord name="REPLACE BINARY"/> <KeyWord name="REPLACE FROM ARRAY"/> <KeyWord name="REPLACE MEMO"/> <KeyWord name="REPLACE OLE"/> <KeyWord name="REPLICATE"/> <KeyWord name="RESOURCE"/> <KeyWord name="RESTORE"/> <KeyWord name="RESTORE IMAGE"/> <KeyWord name="RESUME"/> <KeyWord name="RETRY"/> <KeyWord name="RETURN"/> <KeyWord name="RIGHT"/> <KeyWord name="RLOCK"/> <KeyWord name="RMDIR"/> <KeyWord name="ROLLBACK"/> <KeyWord name="ROUND"/> <KeyWord name="RTOD"/> <KeyWord name="RTRIM"/> <KeyWord name="RUN"/> <KeyWord name="RUN"/> <KeyWord name="SAVE"/> <KeyWord name="SAVE TO"/> <KeyWord name="SCAN"/> <KeyWord name="SECONDS"/> <KeyWord name="SEEK"/> <KeyWord name="SEEK"/> <KeyWord name="SELECT"/> <KeyWord name="SELECT"/> <KeyWord name="SET"/> <KeyWord name="SET ALTERNATE"/> <KeyWord name="SET AUTOSAVE"/> <KeyWord name="SET CENTURY"/> <KeyWord name="SET CONSOLE"/> <KeyWord name="SET CURRENCY"/> <KeyWord name="SET DATABASE"/> <KeyWord name="SET DATE"/> <KeyWord name="SET DATE TO"/> <KeyWord name="SET DBTYPE"/> <KeyWord name="SET DECIMALS"/> <KeyWord name="SET DELETED"/> <KeyWord name="SET DIRECTORY"/> <KeyWord name="SET ENCRYPTION"/> <KeyWord name="SET EPOCH"/> <KeyWord name="SET ERROR"/> <KeyWord name="SET EXACT"/> <KeyWord name="SET EXCLUSIVE"/> <KeyWord name="SET FIELDS"/> <KeyWord name="SET FILTER"/> <KeyWord name="SET FULLPATH"/> <KeyWord name="SET HEADINGS"/> <KeyWord name="SET HELP"/> <KeyWord name="SET HIGHPRECISION"/> <KeyWord name="SET HOURS"/> <KeyWord name="SET INDEX"/> <KeyWord name="SET KEY TO"/> <KeyWord name="SET LDCHECK"/> <KeyWord name="SET LDCONVERT"/> <KeyWord name="SET LOCK"/> <KeyWord name="SET MARGIN"/> <KeyWord name="SET MARK"/> <KeyWord name="SET MEMOWIDTH"/> <KeyWord name="SET NEAR"/> <KeyWord name="SET ODOMETER"/> <KeyWord name="SET ORDER"/> <KeyWord name="SET PATH"/> <KeyWord name="SET PCOL"/> <KeyWord name="SET POINT"/> <KeyWord name="SET PRECISION"/> <KeyWord name="SET PRINTER"/> <KeyWord name="SET PROW"/> <KeyWord name="SET REFRESH"/> <KeyWord name="SET RELATION"/> <KeyWord name="SET REPROCESS"/> <KeyWord name="SET SAFETY"/> <KeyWord name="SET SEPARATOR"/> <KeyWord name="SET SKIP"/> <KeyWord name="SET SPACE"/> <KeyWord name="SET TIME"/> <KeyWord name="SET UNIQUE"/> <KeyWord name="SET VIEW"/> <KeyWord name="SETTO"/> <KeyWord name="SIGN"/> <KeyWord name="SIN"/> <KeyWord name="SKIP"/> <KeyWord name="SORT"/> <KeyWord name="SOUNDEX"/> <KeyWord name="SPACE"/> <KeyWord name="SQLERROR"/> <KeyWord name="SQLEXEC"/> <KeyWord name="SQLMESSAGE"/> <KeyWord name="SQRT"/> <KeyWord name="STATIC"/> <KeyWord name="STORE"/> <KeyWord name="STORE AUTOMEM"/> <KeyWord name="STR"/> <KeyWord name="STUFF"/> <KeyWord name="SUBSTR"/> <KeyWord name="SUBSTRING"/> <KeyWord name="SUM"/> <KeyWord name="SUM"/> <KeyWord name="SUSPEND"/> <KeyWord name="TAG"/> <KeyWord name="TAGCOUNT"/> <KeyWord name="TAGNO"/> <KeyWord name="TAN"/> <KeyWord name="TARGET"/> <KeyWord name="THROW"/> <KeyWord name="TOTAL"/> <KeyWord name="TRANSFORM"/> <KeyWord name="TRIM"/> <KeyWord name="TRIP"/> <KeyWord name="TRY"/> <KeyWord name="TTIME"/> <KeyWord name="TTOC"/> <KeyWord name="TYPE"/> <KeyWord name="TYPE"/> <KeyWord name="UNION"/> <KeyWord name="UNIQUE"/> <KeyWord name="UNLOCK"/> <KeyWord name="UPDATE"/> <KeyWord name="UPDATE ON"/> <KeyWord name="UPPER"/> <KeyWord name="USE"/> <KeyWord name="USER"/> <KeyWord name="UTC"/> <KeyWord name="VAL"/> <KeyWord name="VALIDDRIVE"/> <KeyWord name="VERSION"/> <KeyWord name="WHERE"/> <KeyWord name="WITH"/> <KeyWord name="WORKAREA"/> <KeyWord name="YEAR"/> <KeyWord name="ZAP"/> <KeyWord name="__dbasewin__"/> <KeyWord name="__vdb__"/> <KeyWord name="__version__"/> </AutoComplete> </NotepadPlus>
Lee
-
@lycan-thrope
Love it when stuff doesn’t show, replaced it with this string 
, to replace the spacing.Lee
-
@lycan-thrope
Wow…now to compound problems, after trying removing all the duplicates and special characters, I decided to reload my test file…and guess what. It doesn’t work now. Sheesh…this is just not my day. Taking a few off…I’m done for now.Thanks for any suggestions in my absence…unless I get another epiphany about what’s wrong. :(
Lee
-
@lycan-thrope
AARGGGHHHH
Beating self about the face and head furiously, again. :(I had my epiphany, as soon as I gave up and took the pressure off…something clicked. It was a typo.
Apparently, my mass formatting that I assumed was done on the bulk list of keywords and functions was woefully SHORT of the last keyword, so it had no
"/>
at the end of the very last keyword in my lists that I was cutting and pasting. Don’t ask me why the example above shows it, but in exhaustion I looked at the file one more time and saw it.Now, my large function file still is not showing up properly, ( and I did check the last keyword), at least my stripped out keyword only list, which is quite large also, works now.
Now to find out why the function hints of the large file aren’t working.
Thanks for the eyes even if they were averted. :)
Lee
-
Hello, @lycan-thrope,
May be, I’m totally off-topic but :
-
I used your second
AutoComplete
version, defined here -
In Notepad++, I entered, near the bottom of the
Language
menu,User Defined language > Define your language...
, and, with theCreate New...
command, I defined a new language calledDBasePlus
-
I did not add anything else and just closed the window
User Defined Language v.2.1.0.12
-
I opened a classical new tab
-
And I selected the
DBasePlus
language, at the bottom of theLanguage
menu, underUser Defined Language
Now, note that, in your
DBasePlus.xml
file, I preferred to change theignoreCase
attribute tono
( instead ofyes
)Indeed, it’s the only way to distinguish, for instance, between the commands
#define
andDEFINE
!
I, then, tried a lot of keywords, like
ABS
,CLEAR ALL
,ZAP
and even__version__
and all of them got displayed for validation, without any problem !In case of keywords with the
\xA0
character, once the correct expression is validated, the search of\xA0
do give1
match !
So, I’m rather confused about all your troubles that you described and also about your very last keyword which should be wrong ?
Best Regards,
guy038
-
-
@guy038 ,
Thanks for the check. In the code you asked about, I mentioned I can’t explain how the text I uploaded here had the last keyword properly closed, but in the one I had been using live, it was unclosed.
Like this:<KeyWord name="__version__ </AutoComplete> </NotepadPlus>
Notice that
__version__
is missing"/>
That was the problem I posted above having found. Apparently, I must have fixed it when uploading, thinking I had just then cut it short, but it was indeed missing those closing characters, because I was pasting in between the start of the keywords below the Environment section and the closing AutoComplete tag.
The Function list is working now…as I found a second typo, probably due, again, to cutting and pasting. Apparently I had a double
<<
set on an opening tag for a keyword/function set of tags.It’s all good. I’m human, I’m humble and can admit my shortcomings. :-)
If was just weird that I thought I had done everything correctly in the production file I had cut and pasted into the autocompletion file, when I hadn’t and found the errors late into the night/morning while I was in the midst of preparing to commit Hari Kari, when I decided to take one last look at the errant code and found it. (Whew…) :-)
I should have know, that I was meticulous on my test file, that’s why it worked, but my production file where I was mass formatting and then cutting and pasting function skeletons in to fill with the information that I must have screwed up something. I knew it probably was my fault, but I had to ask if I had hit some kind of wall I wasn’t aware of because of the large sizes of my auto completion function hint sections as compared to the other autocompetion files…because I thought I had done everything right. :(
Lee
-
@lycan-thrope
Folks,There is one thing that puzzled me while I was trying to troubleshoot the problems I was having, and that is that I turned off the both keywords and functions completion option in the autocompletion dialog, and selected only the Word Completion as the screenshot shows:
But apparently, selecting that option, stopped anything from working as one of the reasons that my keywords didn’t show was that I had changed the settings for the dialog to words only. When in desperation, I selected again, the Words and Functions, the keywords again were able to be completed. This screenshot shows that after typing many letters I still did not have a selection dialog:
Mind you, this is with my current working list, but with only the Words selected in the Dialog. ::puzzled::.
Lee
-
@lycan-thrope said in Auto-Completion Is this Legal?:
puzzled
Why puzzled? Word-only completion is completion hints based on other words in your active file. Function-only completion is completion based on FunctionList. Function+Word gives you both. Your experiment agrees with that, unless I have misread something
-
Maybe I’m misreading something again? The words, in this partiular example, that I was typing was “ALTER TABLE”, one of the keywords in my autocompletion file.
<KeyWord name="ALTER TABLE"/>
So unless the dialog box means “Words” that are present in the document you are typing, then, yes, I have obviously misread it. If it means words, that are keywords in the autocompletion file (not the functions that still worked once the open parens was typed), then I’m not misreading. If it means Words, as in keywords in the UDL ‘keywords’ dialog, then there is a gross misunderstanding on my part about the Autocompletion files purpose and the Preferences Autocompletion settings purpose.
Is my interpretation a misreading? I figured the Autocompletion dialog was allowing Keywords only, in the Autocompletion file, to be autocompleted, rather than the Keyword Functions in that same file.
As an aside, I don’t remember if I asked this question before about the UDL and keywords (because I could try and put it here instead) in the below code file, the Main Class declaration I want stylized, not the function property.
class PlainObjectListForm of FORM with (this) onOpen = class::FORM_ONOPEN onClose = class::FORM_ONCLOSE doubleBuffered = true metric = 6 // Pixels colorNormal = "Gray" height = 529.0 left = 110.0 top = 29.0 width = 1092.0 sizeable = false pageno = 0 refreshAlways = false endwith
I tried putting class in the folding code 2 styler that required their to be spaces around the word for it to be recognized as a proper to highlight word, which the object resolution operator
::
(double colon) would disqualify it from being highlighted. I’ve tried a bunch of different places for it to be in the different UDL dialogs and couldn’t get it to not highlight the function property word.Thanks for any guidance on these subjects in advance,
Lee
-
@lycan-thrope
I figured out, how to stop that behavior with the scope resolution operator. I had to pull the singular:
colon out of the operators 1 dialog.
::smacking head::Of course, now I just need to be set straight on my understanding of the dialog’s choice purposes. :-)
Lee
-
@lycan-thrope
Peter, please disregard my misunderstanding. Based on your explanation, I went back and clicked only the Functions option in the Autocompletion dialog and found that indeed, that setting allowed by keywords and keyword Functions to list properly. I guess having US English as my native language is a detriment for me in understanding how some of the documentation is written. :) Thanks for the explanation that brought enlightenent.Lee
-
@lycan-thrope said in Auto-Completion Is this Legal?:
I guess having US English as my native language is a detriment for me in understanding how some of the documentation is written.
– from Settings > Preferences > Auto-CompletionThat seems pretty standard US English to [me](“Admittedly, my interpretation is biased”). But there is some ambiguity… probably because at the time that I wrote that about three years ago, I hadn’t ever actually done any of the customization of auto-completion, and I hadn’t experimented as fully with what those settings do.
Let’s compare what the three settings show when Perl is the active language, where
checkbox
andcheckbox_group
are defined as keyword names in the auto-completion file perl.xml, and I have the wordcheck
already typed in my document.radio box completion popup ⦿ Function completion
⦿ Word completion
⦿ Function and word completion
I will add it to my TODO list to clarify the description in the usermanual to make it more clear what “word” vs “function” is.
-
https://npp-user-manual.org/docs/auto-completion/
The first paragraphs of the “Function completion” and “Word completion” sections of the main Auto-Completion page does clarify the differences…
However, I’ll still clarify that in the Auto-Completion Preferences description as well.