Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
91 lines (78 sloc) 4.63 KB

Oro?

<a href=http://www.gnu.org/software/global/>
<img src=pglobe.png alt='[Powered by GLOBAL]'>
</a>

~/.emacs.d/rurouni-kenshin-oro.jpg

![oro](~/.emacs.d/rurouni-kenshin-oro.jpg “Oro?”)

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.

  1. git clone https://github.com/universal-ctags/ctags.git
  2. If you have autoconfm automake, and pkg-config you can skip these steps, otherwise:
    1. sudo apt-get install autoconf
    2. sudo apt-get install automake
    3. sudo apt-get install pkg-config
  3. cd into the ctags directory
  4. Run the following (these steps are from the docs page):
    1. ./autogen.sh
    2. ./configure –prefix=/usr/local/bin
    3. make
    4. sudo make install
  5. Grab a tar file from https://ftp.gnu.org/pub/gnu/global/
  6. tar -xzvf global-<version_num>
  7. cd into the global-<version_num> directory
  8. If you do not have ncurses, run the following:
    1. sudo apt-get install ncurses-dev
  9. Run the following:
    1. ./configure –prefix=/usr/local/bin –with-universal-ctags=/usr/local/bin/ctags
    2. make
    3. 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