Hello everyone! Welcome to another one of my posts. Today, it will be about creating your own emacs extensions, because well, I made one! So, lets begin. First, you will have to find yourself an idea on what your extension will do. Second, check if there is already an extension that does the same thing. Almost every extension for emacs that you'd want already exists, so you most likely don't even need to do it. But lets say you still want to. Lets begin! First, you will want to create you main file, lets call it my-extension.el, and then my-extension-pkg.el, which just has a few details about our extension, and then my-extension-autoloads.el, which just tells emacs what files are part of your extension, stuff like that lets start at the details about our package. You simply define (define package then dependencies, and the something like the commit number or the url to the source repository. As for the autoloads file we can simply run loaddefs-generate in emacs to generate our autoloads file. Its time for the main file now, where we define our functionality. E-Lisp is obviously a lisp like language, so everything uses round brackets. For stuff that should execute at startup, just leave it in the global scope and it should execute. For elisp only functions, you can simply use (defun () (message "Hello, world!") ) For functions that can be executed by the user, you can simply add (interactive) to the start of your function body and it can be executed using M-x. Now, for furthurer extensibility, you should add hooks everywhere where the user might want to execute something right after your function finishes. If you can't do that for some reason, the user can still add something called advices to basically redirect your functions to theirs(user always wins). Now, after you have your extension finihed, you just need to get your emacs package to a package manager like MELPA to actually have your package be visible on package-list-packages command for normal users. Happy extending! See you next time.