Better Xojo Help — browse every installed Xojo doc set from one window (open source)

I kept running into the same annoyance: the IDE’s help only reaches the documentation of the version
it belongs to. I have 30 Xojo releases installed, and the docs for the older ones may as well not
exist — the pre-2019 sets are in a SQLite format nothing opens any more.

So I built Better Xojo Help, a small Xojo desktop app that reads all of them from one window,
with a popup to switch releases.

But the real reason I kept working on it was search. I find it genuinely hard to locate the exact
thing I want in Xojo’s own help — I know the class, I half-remember the method, and I still end up
scrolling. The and / or / exact popup next to the search field fixed that for me: type
list add, leave it on and, and you get the DesktopListBox members that match both words,
wherever they sit in the title or the path.

It is also fast: there is no index to build on first run, because both formats already ship one
and the app reads them in place. Results come up as you type.

Better Xojo Help

list gives 200 results — the cap — and you are scrolling again. list add gives 24, with the
DesktopListBox members that add a row at the top and everything deprecated at the bottom:

Searching for two words

What it does

  • Reads both offline formats: the Sphinx HTML sets from 2022r1.1 onward, and the old
    XojoLangRefDB SQLite sets from 2015r2.1 to 2019r1.1. (The 2013 MediaWiki dumps are out of scope —
    they store unrendered wikitext.)
  • Searches titles, paths and members. That last part matters more than it sounds: in the modern
    docs only a deprecated member gets a page of its own, so DesktopListBox.AddRow is a section
    inside its class page and page-level search cannot see it. The app harvests those — 15 502 of them
    on 2026r1.2 — so searching listbox addrow actually finds it.
  • and / or / exact for multi-word queries, which is the feature I use most.
  • Deprecated results sort last, whatever their score. Counting occurrences otherwise ranks them
    first, because a deprecated page repeats the name of whatever replaced it.
  • Links, tabs (Cmd-click), Back/Forward, favourites, and a globe that opens the current page on
    documentation.xojo.com.
  • Fully offline. The pages are re-rendered locally with the app’s own stylesheet, so nothing is ever
    fetched from a CDN — the shipped HTML references jsdelivr and Google Tag Manager, and none of that
    is loaded.
  • Read-only against your Xojo installation. It only ever writes inside its own Application Support
    folder.

One thing to do first

Xojo does not install its documentation by default, so if the app says it found nothing, that is
almost certainly why. In Xojo: Preferences → General → Documentation → Install Local
Documentation
, and repeat it in each version you still have installed — every release keeps its own
copy, and this app reads all of them at once.

(2019r2 through 2022r1 shipped no local docs at all, so those will never show up whatever you do.)

A few things I learned that might save someone else the time

  • Xojo’s searchindex.js is Search.setIndex({…}) — strip the wrapper and it is valid JSON. But only
    4 of the 15 shipped files actually parse: the rest use unquoted keys, so I slice out the arrays I
    need rather than parsing the document.
  • The legacy FTS4 MATCH has to sit in a subquery. Joining a virtual table on MATCH directly
    returns nothing at all, silently.
  • HTMLViewer.LoadPage(source, base) cannot show local images, whatever base you give it — Xojo
    writes the string out as index.html and the result is refused read access to its neighbours. The
    arrangement that works is to put the assets in a folder you own, write the page into that same
    folder, and use the LoadPage(FolderItem) overload.

MIT licensed. Built with Xojo 2026r1.2, API 2.0 throughout. macOS only for now — there are
per-platform paths for Windows and Linux in the scanner, but I have not tested either, and I would
welcome a report from anyone who tries.

Happy to hear what breaks.

Nice works, I will download it.

It’s one thing I complain since… 2019 is to… get in a Desktop project, Help for Web and iOS, and… !
So, I scroll, wasting my time.

If Xojo implement a set of CheckBox(s) with the platform to report will allow everyone to be happy:
Users that create only for one, Two or more platforms,
xojo because the day there will be write one source, deploy in all Platform will also get what they want.

BTW: I still not hold my breath until I will this implemented.

Xojo: this software dates from 1997 (I came in march 1998, in the REALbasic 1.0 beta cycle).

Before firing the application, I searched the old documentation (I trashed them this year because I could not use them / they takes space in my small SSD).

I had only 5 years of old documentation on hand (the laptop age), so I downloaded the dmg for 2025 (the one I use on my old Intel laptop).
Of course I forgot that the data in Documentation folder are .pdf files.
So, Open the dmg, right-click in the Application, and go to the Contents:Resources:Language Reference folder → copy that folder who hold the XojoLangRefDB and TopicList.txt

I am there and have to continue to work on a project. I will install the project later today.

new update.

Better Xojo Help 0.16.0 — the documentation can now be filtered by platform.

Two groups of checkboxes, because Xojo’s own Compatibility table has two rows: project types
(Desktop / Web / Mobile) and operating systems (macOS / Windows / Linux / iOS / Android). A page has
to match both, so unticking Web really does drop WebListBox — even though a web app does run on
macOS. The topic tree narrows along with the results, and your choices are remembered.

The language reference is never hidden, whatever you untick: String is not a desktop class.

Platform filters

Would be nice if your app download was Universal rather than Apple Silicon only.

absolutely. macos universal uploaded.

Just tried downloading it and it says the developer cannot be recognised.

Just downloaded it again and get this:

can someone else try to download the binary and report here ?
can you try with another browser like safari ?
what macos version are you on ?

don’t you have something in system settings / confidentiality and security like allow only the apps from appstore
(and not from known developers) that could be the problem

It launches fine here.

I’m running macOS 12.7.6 and my security settings are set to allow the App Store and identified developers.
Just tried downloading it in Safari and I got the same error.

this is very strange…
you may try to go into system settings, confidentiality and security and and at the bottom “run anyway” should appear
you can also download the sources and compile yourself. it should work until some xojo 2021 or so.

Will do.

I ran codesign -v and this is what it reported:

1: dynamically valid
1: valid on disk
1: satisfies its Designated Requirement

/Users/x/Downloads/Better Xojo Help 16.02.26.app: unsealed contents present in the root directory of an embedded framework

In subcomponent: /Users/x/Downloads/Better Xojo Help 16.02.26.app/Contents/Frameworks/XojoFramework.framework

I just downloaded the file and can install successfully.

my problem is I am using Xojo 2021r3.1.

I found the file XojoLangRefDB in the following folder

‘/Applications/Xojo 2021 Release 3.1/Xojo2021r31.app/Contents/Resources/Language Reference/XojoLangRefDB’

I put it into the file into ‘/Users/trishaduke/Library/Application Support/Xojo/Xojo/Xojo 2021r3.1’ and start your application but it say file not found. I even try ‘/Users/trishaduke/Library/Application Support/Xojo/Xojo/’ and it does not work

I am running on MacOS 26.6

if you clic “Install local documentation” in settings it should land at the right place

I see the problem may be I set the barrier between new and old doc at 2019r11
simply because I don’t have any xojo between 2019 and 2022
so your 2021 still uses old doc, and the app supposes it is th new docs
that may be why it does not work
simple try: rename the folder as 2019r1 in app support/xojo/xojo and it should find the docs

edit: the switch was for 2022r1. so your 2021r3 is the last one to use the old doc…
will fix that and reupload

Hi Jean-Yves,

Thank you for the Platform feature.

When I fired by double-click your universal binary, I get:

I also tried Right-Click —> Open top the same dialog.

Tahoe 26.6

whaou. I find it very strange that some user can run it and others can’t !
seems a notarisation problem.
will try to build it with 2026r2 instead of 2026r11

I create a folder call Xojo 2019r1 and put the file there but does not work. got the following error

No Xojo documentation found

Better Xojo Help reads the offline documentation that ships with each Xojo release, from ~/Library/Application Support/Xojo/Xojo. Install a Xojo release that includes its documentation and reopen this window.