Oro?
<a href=http://www.gnu.org/software/global/>
<img src=pglobe.png alt='[Powered by GLOBAL]'>
</a>
This is my personal emacs configuration - it’s currently a work in progress. I eventually intend for these set of configurations to be used by other people. Since people who create a set of configs name that set - I’ll name mine. This is called Oro, after what the character Kenshin (from Rurouni Kenshin) says when he’s confused.
Setup
Settings up GNU Global and Universal-ctags
The GNU Global package on Ubuntu is really old, it’s best to grab a tar file from here: https://ftp.gnu.org/pub/gnu/global/
The exuberant-ctags package hasn’t been worked on since 2009, so I use Universal-ctags.
These instructions are meant for a Debian based system.
- git clone https://github.com/universal-ctags/ctags.git
- If you have autoconfm automake, and pkg-config you can skip these steps, otherwise:
- sudo apt-get install autoconf
- sudo apt-get install automake
- sudo apt-get install pkg-config
- cd into the ctags directory
- Run the following (these steps are from the docs page):
- ./autogen.sh
- ./configure –prefix=/usr/local/bin
- make
- sudo make install
- Grab a tar file from https://ftp.gnu.org/pub/gnu/global/
- tar -xzvf global-<version_num>
- cd into the global-<version_num> directory
- If you do not have ncurses, run the following:
- sudo apt-get install ncurses-dev
- Run the following:
- ./configure –prefix=/usr/local/bin –with-universal-ctags=/usr/local/bin/ctags
- make
- sudo make install
Structure
oro/
The core of Oro - this directory includes files that handle all of the core functionalities.
For me, I consider core functionalities to be better defaults and completion.
- oro-completion.el
modules/
Tasks
Fix the checker used for flycheck
I’m currently running into an issue where flycheck defaults to using LSP as the syntax checker. I’d like to either:
- override flycheck so that is picks php-phpcs as the checker
- or make it so that LSP is used, but flycheck only shows up after save and not within lsp-ui-line
Fix deleting / pressing space lag
Holding down backspace or space has a noticeable lag. I think this may have to do with lsp-ui-doc, where it’s making calls to lsp-ui-doc between each backspace / space.
Speed up LSP or go back to ac-php
I primarily program in PHP - lsp-php is nice but it isn’t as fast as I would like it to be. I think I might try to make some modifications so that it’s faster, or I’ll go back to using ac-php.
Find a way to complete/order $this->
When typing $this-> or $class-> there are candidates from that classes scope within the company pop up. This is super helpful, but there are a couple of issues:
- I can only type $this->, if I try to do $this->a on occasion the completion stops working
- Also, the candidates are not sorted as you type - so just doing $this-> will show all of whats available in alphabetical order - but if you do $this->h it won’t show things starting with h first
Find the best functions to use for jumping back and forth between definitions
Evil provides evil jump to and going back, but so does xref (which LSP uses). Find the best one to use. In addition, fix the keybindings so that they actually work!
Think about committing a task archive
It’d be interesting to keep track of a task archive for this readme file - so that I can see all the tasks I’ve completed regarding Oro.
Adjust company-lsp
company-lsp will complete on functions but for variables it shows a list of local available variables in alphabetical order, rather than order by what’s closets to what I’m typing
Fix the key bindings in oro-php
They currently do not work - I think I need to look into how keymaps work
Create a function that goes through the comments of each file
And turns it into an org booklet! That way, people can view this source code as if they were reading a book.
Create a function that / write code that will strip comments from all .el files
This is for people that want to have a starting configuration without all the extra talk.
Create a function that compiles oro into one large org file
Make it so that core is automatically downloaded but modules are only downloaded when used
The rationalale behind this is the “core” is the essence of oro and is absolutely needed, while modules are optional
