How to load jedi as installed with el-get? - emacs

I have followed the quick start to install jedi. el-get-list-packages shows jedi as required, but no jedi namespace is available, so that I can not run jedi:install-server.
How are packages installed with el-get loaded? How can I force a load? How do I know where the packages are stored?

Maybe jedi doesn't provide any autoloads? In that case you could either provide your own, or just require the library outright in your init file.
...but no; looking at the repo your jedi:install-server function in jedi-core.el has an autoload cookie. el-get ought to have processed that on installation. If you have a ~/.emacs.d/el-get/.loaddefs.el file, check for the autoload declaration there?
el-get presumably still puts things in ~/.emacs.d/el-get/ by default (I use quite an old version, so I'm unsure of what's changed).
n.b. If the jedi library is in the load-path, then M-x locate-library RET jedi RET will tell you where it is located. (And find-library can visit it.)

Related

Emacs auto-complete broke after update: required 'popup' feature not provided

After updating outdated packages, auto-complete (and its dependencies like ac-slime) broke with the error "Required feature 'popup' is not provided". Inspection of the elpa directory revealed that popup is there. Recompilation of everything in elpa directory with byte-recompile-directory did not solve the problem (both popup.el and popup.elc are present but auto-complete still fails).
PS. Further inspection revealed that some other packages are failing because xml-prc is absent, but Emacs shows that it is installed and it is indeed is present in elpa directory.
What are my steps to make Emacs work again?
Since there are no other answers yet (I hope there will be a real one!), here is what have worked in meantime:
Basically, during the package update something has gone wrong -- don't know what exactly. Usually, byte-recompile-directory on elpa directory helps to sort out the issue: it recompiles all the package files and after restart Emacs is usually can load them without problems. This time, however, it didn't help. So I used a more drastic measure: I deleted elpa directory form ~/.emacs.d (or actually I moved it away), and restarted Emacs.
My .emacs file contains the list of packages that need to be installed if missing, so all the package re-installation happened automatically, I just needed to wait (circa 30 min) for Emacs to start.
(This is a well known trick, but if you interested, here is the source on github)
But this solution is not ideal, I was hoping for something cleaner.

Emacs - let-alist unavailable

When I tried to install flycheck package on emacs24, it show error that let-alist1.0.1 unavailable. But I heard that let-alist is built-in package of emacs25, I wonder is there any work-around for emacs24?
let-alist is available from ELPA. Use
M-x list-packages
to pull up a list of available packages, then search for let-atlist (C-M-s as usual). Then install it. See also here.
Alternatively, you can download it from here and install it manually. ELPA is easier, though.

Setting up Vala mode on Emacs

I'm trying to set up a mode for editing Vala in Emacs. I've only found these instructions, and it seems that (for the first case with packages) marmalade no longer carries vala-mode, and for the second, csharp-mode always fails to compile when I try to install it! What should I do?
I just confirmed that vala-mode is not included in the marmalade archive, despite the link above. To work around this, from within M-x eshell execute:
$ wget http://marmalade-repo.org/packages/vala-mode-0.1.el
$ package-install-file vala-mode-0.1.el
package-install works with the network automatically, but package-install-file, and package-install-from-buffer are also available.
Of course this solution will not download it automatically going forward, so you should contact Marmalade maintainers to determine why it's not listing it in the archive, or possibly submit it for inclusion in Melpa.
Another useful thing you can do is install and configure an LSP language server. I've had some success with https://github.com/Prince781/vala-language-server.
You can then install lsp-mode (https://github.com/emacs-lsp/lsp-mode) and lsp-ui (https://github.com/emacs-lsp/lsp-ui) for Emacs.
And then create a compile_commands.json file for your Vala project. E.g.
[
{
"directory": "/home/user/projects/example",
"command": "/usr/bin/valac /home/user/projects/example/main.vala",
"file": "/home/user/projects/example/main.vala"
}
]
I haven't found an automatic way of doing this. But it's possible you could use CMake. CMake is definitely capable of generating a compile_commands.json. You would just need to describe your Vala project in a CMakeLists.txt file.
Then you add (lsp) to your vala-mode-hook:
(add-hook 'vala-mode-hook #'(lambda () (lsp)))

Web-mode does not load in emacs

I'm pretty new to emacs and I'm currently trying to configure it properly for my needs, but I can't make it load web-mode at all.
So, this is what I've done:
Downloaded web-mode.el from GitHub
Made sure the file is located in the correct directory: ~/.emacs.d/web-mode.el
Used the installation instructions from the official page
My .emacs file now looks like this
Issue:
When I'm trying to edit any of the file types specified in the .emacs file, it only runs the default modes. PHP Abbrev for PHP etc... I'm not receiving any error messages and when I'm running --debug-init it does not give any output.
Emacs version: GNU Emacs 23.1.1 (x86_64-redhat-linux-gnu, GTK+ Version 2.18.9) of 2012-03-01 on sl6.fnal.gov
OS: Scientific Linux
Does anyone know how I can troubleshoot this further, or have solved similar issues?
You should let el-get install it for you. El-get is a package manager for emacs. It can install packages from github, emacswiki, elpa, an url, … http://wikemacs.org/index.php/El-get
It's very handy, you can update scripts easily, it manages dependencies, it lets you discover many stuff, you can easily share your config accross machines, etc.
Emacs 24 has package.el or ELPA by default. One can install it on emacs 23, but my experience isn't conclusive so I'd advise sticking with el-get, which is great.

Emacs 24.3 dired+ won't load

I installed dired+ through list-packages (the folder was put in the elpa folder), and put '(add-to-list 'load-path "~/.emacs.d/elpa/")' in my init file (which I created myself), and '(require 'dired+) under. When I open emacs, I get an error telling me there's an error in my init file. If I remove the '(require 'dired+) line, the error stops, but again dired+ doesn't work when I call dired mode. The actual folder that was downloaded when I installed it is 'dired+-20130206.1702'. So I tried '(require dired+-20130206.1702), which again gave me an error on startup.
I'm at my wits end. I've tried everything I can think of, gone through the GNU emacs docs, googled the problem, looked at the answers here at Stack, and no luck. Does anyone have any suggestions? I'm using Windows XP.
It's impossible to say for certain without seeing all the code, but you appear to be quoting your forms for no reason.
i.e., these:
'(add-to-list 'load-path "~/.emacs.d/elpa/")
'(require 'dired+)
should be:
(add-to-list 'load-path "~/.emacs.d/elpa/")
(require 'dired+)
However that should just make them ineffectual, rather than causing errors directly.
Show us the code and the error message.
Edit:
Adding the /dired+/ to the end seemed to fix it ... Although I have no idea why. Any thoughts?
load-path holds a list of directories in which Emacs will look for libraries. It does not automatically descend into sub-directories, so you need to specify all relevant directories for your libraries. Your dired+ library is clearly in the ~/.emacs.d/elpa/dired+/ directory.
For menubarplus, you will similarly need to check to see which directory the library is in.
To be honest, I had thought that the package management in Emacs 24 would take care of this automatically; but as I've not been using it, I'm not certain.
Edit 2:
Yes, I suspect you have some other problem here. I just experimented with installing a library via the package manager (albeit from the default package repository, which doesn't include a dired+ package), and after restarting Emacs load-path contained the path for the new library without any intervention on my part.
I think Phils answered your question wrt loading Dired+ (specify the right directory, the one where you put dired+.el).
Wrt Menu-bar+, the feature name is menu-bar+, not menubarplus and not menu-barplus. So change your (require 'menubarplus) to (require 'menu-bar+).