You can use a source block with a self-defined major mode.
It is easy to define a customized major mode with helper functions like define-derived-mode.
Let us name your new major mode myorg-mode. Then the name of the function executed on C-c C-c is org-babel-execute:myorg.
It is called with two arguments. The first arg is the content of the source block as a ...
Org mode uses the standard Emacs minibuffer completion mechanism for tags: whenever a tag is expected (e.g. at the C-c a m prompt), you can type TAB to get a completion list. You can click on a completion to choose it (or, without a mouse, switch to the completion buffer, navigate to the completion of interest and press RET); or you can narrow down the ...
That is the correct way to do it. Your only other approach is to use something like ivy or helm, which when you type C-c a m will offer you a list of tags that you can use completion on to narrow down.
I was able to generate the tags running gtags --gtagslabel=ctags from the root of the project, using a configuration from ubuntu (zcat /usr/share/doc/global/examples/gtags.conf.gz > ~/.globalrc).
This was suggested to me through the org-mode mailing list: replace ‘org-tag-persistent-alist’ instead of org-tag-alist in ~/.emacs. I tried it: autocomplete works for both the local and global tag lists.
KO, I think that C-c a m works only in Agenda files and the one I searched is not a dedicated agenda file. Anyway (org-match-sparse-tree) which should do the trick delivers more than I want i.e. every Headline no matter which tag it has. Puzzled.
You should use the new advice system `nadvice` instead of the old one.
xref-find-definitions prompts the user already in its `interactive-form`. So you need to run `open-tags-file` in the interactive-form of your advice for the case that xref-find-definitions is called interactively.
I use the interactive specification of xref-find-definitions of emacs 25.3....
You have a spelling mistake:
The word is spelled function
I'm not using these features so I don't know for sure, but I suspect that the problem will be solved if you fix that name.