-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
I found Org Mode's completion (from ~completion-at-point-functions~ which is provided by ~pcomplete-completions-at-point~) can complete in bellowing places (the "|" represent cursor point): #+begin_src pyt| #+end_src #+begin_src python :ses| #+end_src #+begin_src C :resu| #+end_src #+begin_src R :fil| #+end_src #+begin_src sh :eva| :expo| :cac| :sheb| :tang| :comm| :no-ex| #+end_src But don't support completing some header arguments, like bellowing examples: #+begin_src sh :wra| :pos :prolo| :epilo| :padli| :mkd| :sep| :file-| #+end_src We can see, all bellowing list of header arguments are standard header arguments of Babel. - - var :: Pass arguments to code blocks. - - results :: Specify the type of results and how they will be collected and handled. - - file :: Specify a path for file output. - - file-desc :: Specify a description for file results. - - file-ext :: Specify an extension for file output. - - output-dir :: Specify a directory to write file output to. - - dir :: Specify the default (possibly remote) directory for code block execution. - - exports :: Export code and/or results. - - tangle :: Toggle tangling and specify file name. - - mkdirp :: Toggle creation of parent directories of target files during tangling. - - comments :: Toggle insertion of comments in tangled code files. - - padline :: Control insertion of padding lines in tangled code files. - - no-expand :: Turn off variable assignment and noweb expansion during tangling. - - session :: Preserve the state of code evaluation. - - noweb :: Toggle expansion of noweb references. - - noweb-ref :: Specify block's noweb reference resolution target. - - noweb-sep :: String used to separate noweb references. - - cache :: Avoid re-evaluating unchanged code blocks by a src block content hash. - - sep :: Delimiter for writing tabular results outside Org. - - hlines :: Handle horizontal lines in tables. - - colnames :: Handle column names in tables. - - rownames :: Handle row names in tables. - - shebang :: Make tangled files executable. - - tangle-mode :: Set permission of tangled files. - - eval :: Limit evaluation of specific code blocks. - - wrap :: Mark source block evaluation results. - - post :: Post processing of code block results. - - prologue :: Text to prepend to code block body. - - epilogue :: Text to append to code block body. There are some header arguments are special to Babel language. Like #+begin_src emacs-lisp :lexical #+end_src #+begin_src sh :stdin :cmdline :separator #+end_src #+begin_src clojure :show-process :alias #+end_src #+begin_src scheme :scheme #+end_src #+begin_src python :prefix #+end_src #+begin_src R :colnames #+end_src #+begin_src sqlite :db #+end_src #+begin_src sql :engine :dbconnection :dbhost :dbuser :dbbase :columes :cmdline #+end_src #+begin_src C :libs :includes :defines :flags :cmdline #+end_src #+begin_src C++ :namespaces #+end_src #+begin_src java :classname :cmdargs :cmdline #+end_src And there some extra Org Babel extensions might use some new header arguments keywords. *Conclusion* So I think Org Mode need an union API to manage those keywords. WDYT? - -- [ stardiviner ] I try to make every word tell the meaning that I want to express. Blog: https://stardiviner.github.io/ IRC(freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3 -----BEGIN PGP SIGNATURE----- iQFIBAEBCAAyFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAl62XNUUHG51bWJjaGls ZEBnbWFpbC5jb20ACgkQG13xyVromsOxLAgAoAgXwRDspbE788Vt5FeZ/0INywZA FH2RWlwxeENoBMkS9CmZ3/vEXq/C6SXs+OK7Hb9DxR00p+0wJJeDlbso+sL0/cPq kgQCRgO4rIpBXHgP/vso6Ky8b/lpNRJmHtsdzG3Ymp5tTr2FXBrPYMHIbC7QgL/9 IOEs74bl3n8KIpo+Yy3uTq2ONg7x89uP4V7EodPvC4aRLfX5k/qytA9l2/C/0cgL mIbeSwrjPFMBeH5eeCgIlP11ZT54U/kaBdegXojgsfA9KFNbcmY6YnZf7LYO4CnN wZkCLJxs88BoQIC5rDSLg6fxXLKda1eFYOwHYqeqsVIWAJF4hvj69CrtOg== =IwCf -----END PGP SIGNATURE-----