autoCompletion folder location requires admin access - unlike other UDL files

  • All my settings are stored in <CloudStoragePath><AppDataFilesRoot>\NPPP, which is super-awesome and a good thing. However, if I want to create a UDL that makes use of autoCompletion, I it appears that I have to put the LanguageName.xml file in %ProgramFiles(x86)%, which requires admin access. This is a bad thing.

    Language AutoComplete xml files should be merged from user storage and the install path.

  • It does make sense that the autoCompletion folder should follow the same rules as the other subdirectories, so that either CloudStoragePath or AppData takes precedence over the InstallDirectory versions. As far as I remember, it doesn’t, though if I can make a suitable experiment, I might come back and reply again if my findings contradict this.

    Someone else might have input as well.

    However, if we confirm that we cannot find a workaround, we in the forum are not the ones in charge of codebase changes. This FAQ explains how to make official feature requests. If you do create an issue, make sure to put a link to that issue in response to this topic, so future readers will be able to find out the status.

  • Sorry, wasn’t sure how long it would take, which is why I separated two replies. My Program Files is locked down on this machine, so I only use portable unzips on this machine. I wasn’t sure whether I could convince a portable to correctly try AppData and/or CloudStorage, but fortunately, I was able to make both work pretty quickly. (And it was nice for myself to finally confirm that CloudStorage will override doLocalConf.xml local-configuration setting, which I had never tried before.)

    Okay, I ran a couple experiments

    • using Settings > Preferences > Cloud enabled, setting it to a directory I called PseudoCloud, I could confirm that PseudoCloud\userDefineLangs\markdown.xml work, but PseudoCloud\autoCompletion\xml.xml wasn’t noticed.
    • disabling cloud, and using %AppData% (delete doLocalConf.xml from install directory), I got it to recognize the UDL defined in %AppData%\Notepad++\userDefineLangs\markdown.xml, but it would not recognize the XML-language autocompletion if i moved it from InstallFolder\autoCompletion to %AppData%\Notepad++\autoCompletion\xml.xml.

    As far as I could tell, I would say that feature doesn’t exist. I would say that the official AutoCompletion docs don’t admit it exists either… but that doesn’t help my cause, because I was heavily involved in the modern docs website, and if I didn’t know about it, I wouldn’t have known to put it into that doc, so it’s a chicken-and-egg problem. ;-)

    If no one else knows of a way to autoCompletion work from AppData and/or CloudPath, then I’d probably say go ahead and make a feature request to add that in, then reply with a link to that request here.

    Sorry I don’t have better news for you yet. Maybe someone else will.

  • @PeterJones Thanks for the repro work! I had a strong suspicion that the location of <LanguageAutoComplete> is hardwired (why would it not have been included in <UserLocations> if there wasn’t some reason - presumably technical - for it?)

    Frankly, I consider it a Security issue to have user configurable files in %ProgramFiles(x86)% (I’m not alone in this regard!). Now on my machine Controlled Folder Access is enabled and I’m not sure how that interacts with UAC folder virtualisation (VirtualStore) for x86 apps and I’m not about to find out by experimentation. I’ll give it a few days then log a (security) bug.

Log in to reply