Giter Club home page Giter Club logo

emacs-for-python's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

emacs-for-python's Issues

Packaging and Makefile

Setup a good makefile to provide:

  • compilation
  • installation
  • packaging
  • emacs-starter-kit translation

emacs-starter-kit borked on vanilla ubuntu 10.4

I didn't see anywhere on your emacs-starter-kit to file issues. So I'll file it here. Feel free to point me somewhere else :)

I following the instructions for install, got some errors, did the M-x regen-autoloads and M-x recompile-init. I then loaded a python file and got the following in Messages:

Pymacs loading ropemacs...done
setq: Symbol's value as variable is void: flymake-info-line-regex
Undo! [2 times]

Instead of going into python mode I stay in fundamental mode :(

Reorganization of the source tree part 2

This issue is related with #23.
The bundled apps are growing in size so I have to clean up a bit the directory structure that is quite messy, maybe to provide an installer.

Symbol's value as variable is void: flymake-enable-pyflakes

Had to move "Customizing" section of epy-python.el to before Flymake configuration to fix this:

;; Customizing
(setq flymake-enable-pyflakes t)
(setq flymake-enable-pylint nil)
(setq flymake-enable-pep8 nil)

;; Python or python mode?
(eval-after-load 'python
 '(progn
 ;; Ropemacs
 (setup-ropemacs)

 ;; Virtualenv Commands
 (autoload 'activate-virtualenv "virtualenv" "Activate a Virtual Environment specified by PATH")
 (autoload 'workon "virtualenv" "Activate a Virtual Environment present using virtualenvwrapper")

 ;; Flymake for python configuration
 (require 'python-flymake)

 (when flymake-enable-pyflakes
   (flymake-add-checker 'flymake-pyflakes-init))

 (when flymake-enable-pylint
   (flymake-add-checker 'flymake-pylint-init))

 (when flymake-enable-pep8
   (flymake-add-checker 'flymake-pep8-init)))
)

Reorganization of the source tree and files

I want emacs for python to be customizable and less-intrusive, it provides various customization that overlap with the emacs-starter-kit package.

Various Ideas

Idea 1

Split the package in:

  • epy-python.el (python settings and libraries)
  • epy-completion.el (completion settings)
  • epy-editing.el (generic editing settings)
  • epy-keybindings.el (keybindings)

It should also include the path manipulation with something like epy-load.el
It should also include a shortcut for all packages, with epy-init.el (so this not break the old behaviour, and this is an highly desiderable feature).

And prepare another version for the emacs-for-python integration with emacs-starter-kit in a separate repository.

Problems : not easy to conciliate with emacs-starter-kit in a really integrated manner, I have to mantain two separate repositories and they can be easily out of sync.

Workarounds: It's possible to solve this problem using some scripts and a beautiful modularity.

Idea 2

Split the package in:

  • starter-kit-python.el [starter-kit-ropemacs.el]
  • starter-kit-completion.el
  • epy-editing.el
  • epy-keybindings.el

In this way it's easier the integration with emacs-starter-kit, since it's sufficient to copy-paste the starter-kit-files (and move the libraries properly).

Problems : it's a bit ugly for configuration in .emacs, for example:

(require 'starter-kit-python) ;; instead of (require 'epy-python)
(require 'epy-editing)

Accepted Solution

Idea 1 seems really better, I'll do some script to mirror it.

To complete the reorganization:

  • Cleaning tasks
    • flymake has to be a bit revisited
  • Adaptation
    • Makefile has to be rewritten with the new organization
    • Write a script that port the stuff to emacs-starter-kit repository

yas/tables in emacs-for-python does not work.

Followed your instructions to load epy-init.el and it crashed and burned with the following output from emacs --debug-init:

Debugger entered--Lisp error: (void-variable yas/tables)
(maphash (lambda (kk vv) (push ... candidates)) yas/tables)
(let (candidates) (maphash (lambda ... ...) yas/tables) (apply (quote append) candidates))
epy-get-all-snips()
(concatenate (quote list) ac-ignores (epy-get-all-snips))
(setq ac-ignores (concatenate (quote list) ac-ignores (epy-get-all-snips)))

better python autocompletion

Autocompletion is good for editing already written python modules, but for writing a script from scratch is almost unuseful, there's a need of a lightweight completion source, for example pycomplete or pysmell.

Otherwise ropemacs would give a great job, but the rope-source is broken, I guess.

Cedet/Semantic works?

eproject integration

TODO:
bundle eproject in emacs-for-python
write the eproject -virt and -workon integration commands

yasnippet autocomplete colliding

(This is for your emacs-starter-kit fork, though I imagine it exists here).

I've a snippet for pdb defined as

#contributor : matt harrison 
#pdb : import pdb; pdb.set_trace()
# --
import pdb; pdb.set_trace()

It works the first time. On subsequent typings of pdb I get autocompletion instead of yasnippet. (ie pdb expanding to pdb|Pdb instead of "import pdb; pdb.set_trace")

Cannot start emacs-for-python at all

  1. Download emacs-for-python-0.2.1 and placed in ~.emacs.d (on WinXP)
  2. Added (load-file = "~.emacs.d\emacs-for-python-0.2.1\epy-init.el") to my .emacs file
  3. started emacs

I got this error:
"Symbol's value as variable is void: = "

Currently I haven't a linux machine to test on, but during the past week end I had a similar error on my Ubuntu PC, but the void variable was yas/tables (AFAIR).

Flymake with pylint support

Pylint seems to be far more complete that pyflakes, there's a way to make it behave right with flymake.

Make decisions about:

  1. Should I bundle it?
  2. Should I leave the user to choose to use pyflakes instead?
  3. To complete the choices should I have to enable pep8 support?

Packaging

Write a little makefile and make an archive with the stuff packaged, maybe a website and blog posts enhance the visibility

Virtualenv extension

Plans/Decisions for the virtualenv extension:

command virtualenv-activate : will activate the virtualenv
command virtualenv-deactivate: deactivate current virtualenv
command virutalenv-make (optionally): make a virtualenv
command virtualenv-workon(partially implemented): to use with virtualenvwrapper, with autocompletion on various envs.

The problem is the virtualenv scope, limited to the current buffer, or in the whole emacs session?

emacs-for-python is growing with static bundles

This is quite an issue since it's becoming very large in size. In addition updating of the libraries can be quite a pain since are all statically included.

Solutions

  1. Removing the bundles and download the various stuff with a script
  2. Bundling in a compressed format
  3. Combination of 1) e 2)
  4. Using elpa?

emacs hangs on interaction with python in pymacs-0.23, fixed in 0.24b2

The issue is that pymacs interaction would end up hanging when talking to the python interpreter, needing the interpreter to be killed. After that, emacs couldn't save. The discussion for the issue can be found at http://groups.google.com/group/rope-dev/browse_thread/thread/b74cca6ccf05608c.

I was consistently able to reproduce this by importing os, and then typing "os.". At that point, everything would freeze.

I created a fork at https://github.com/nortonp/emacs-for-python that has pymacs-0.24b2. This fixes the issue.

Project management

The eproject package seems to provide a lot of features in an easy way:

  • build targets
  • unit test targets
  • run targets
  • project list
  • per-project config file (with wizard)

Keybindings aren't a good idea

The reason is that isn't the purpose of the package, anyway I can provide a file with my choice, see also emacs starter kit

project-management sort of

I can use eproject.el and modify to get a configuration for running tests (like eclipse does in some way)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.