Age | Commit message (Collapse) | Author |
|
Problem: Python: key mapping is not standard.
Solution: Puthon patch 24: use PyMapping_Keys. (ZyX)
|
|
Problem: Python: Dictionary is not standard.
Solution: Python patch 20: Add standard methods and fields. (ZyX)
|
|
Problem: Python: Using fixed size buffers.
Solution: Python patch 18: Use python's own formatter. (ZyX)
|
|
Problem: Python: dir() does not work properly.
Solution: Python patch 8. Add __dir__ method to all objects with custom
tp_getattr supplemented by __members__ attribute for at least
python-2* versions. __members__ is not mentioned in python-3*
dir() output even if it is accessible. (ZyX)
|
|
Problem: Python: No {Buffer,TabPage,Window}.valid attributes.
Solution: Python patch 5: add .valid (ZyX)
|
|
Problem: Python: Dynamic compilation with 2.3 fails.
Solution: Python patch 4. (ZyX)
|
|
Problem: Python: can't assign to vim.Buffer.name.
Solution: Python patch 3. (ZyX)
|
|
Problem: Python: Problems with debugging dynamic build.
Solution: Python patch 1. (ZyX)
|
|
Problem: Python interface does not compile with Python 2.2
Solution: Fix thread issues and True/False. (ZyX)
|
|
Problem: Python: garbage collection issues.
Solution: Fix the GC issues: Use proper DESTRUCTOR_FINISH: avoids negative
refcounts, use PyObject_GC_* for objects with tp_traverse and
tp_clear, add RangeTraverse and RangeClear, use Py_XDECREF in some
places. (ZyX)
|
|
Problem: Python: Module initialization is duplicated.
Solution: Move to shared file. (ZyX)
|
|
Problem: Python: Too many type casts.
Solution: Change argument types. (ZyX)
|
|
Problem: More can be shared by Python 2 and 3.
Solution: Move more stuff to if_py_both. (ZyX)
|
|
Problem: There is ":py3do" but no ":pydo".
Solution: Add the ":pydo" command. (Lilydjwg)
|
|
Problem: Python: not so easy to access tab pages.
Solution: Add window.tabpage, make window.number work with non-current tab
pages. (ZyX)
|
|
Problem: Python vim.bindeval() causes SIGABRT.
Solution: Make pygilstate a local variable. (Yukihiro Nakadaira)
|
|
Problem: Python: string exceptions are deprecated.
Solution: Make vim.error an Exception subclass. (ZyX)
|
|
Problem: Python exceptions have problems.
Solution: Change some IndexErrors to TypeErrors. Make “line number out of
range” an IndexError. Make “unable to get option value” a
RuntimeError. Make all PyErr_SetString messages start with
lowercase letter and use _(). (ZyX)
|
|
Problem: Python: Stack trace printer can't handle messages.
Solution: Make KeyErrors use PyErr_SetObject. (ZyX)
|
|
Problem: Python: no easy access to tabpages.
Solution: Add vim.tabpages and vim.current.tabpage. (ZyX)
|
|
Problem: Cannot build with Python 2.2
Solution: Make Python interface work with Python 2.2
Make 2.2 the first supported version. (ZyX)
|
|
Problem: Python: No iterator for vim.list and vim.bufferlist.
Solution: Add the iterators. Also fix name of FunctionType. Add tests for
vim.buffers. (ZyX)
|
|
Problem: Python: List of buffers is not very useful.
Solution: Make vim.buffers a map. No iterator yet. (ZyX)
|
|
Problem: Python: SEGV in Buffer functions.
Solution: Call CheckBuffer() at the right time. (ZyX)
|
|
Problem: Stuff in if_py_both.h is ordered badly.
Solution: Reorder by type. (ZyX)
|
|
Problem: More can be shared between Python 2 and 3.
Solution: Move code to if_py_both.h. (ZyX)
|
|
Problem: Typos in source files.
Solution: Fix the typos. (Ken Takata)
|
|
Problem: Python interface can't easily access options.
Solution: Add vim.options, vim.window.options and vim.buffer.options. (ZyX)
|
|
Problem: Python: Access to Vim variables is not so easy.
Solution: Define vim.vars and vim.vvars. (ZyX)
|
|
Problem: Python code in #ifdef branches with only minor differences.
Solution: Merge the #ifdef branches. (ZyX)
|
|
Problem: Duplicate Python code.
Solution: Move more items to if_py_both.h. (ZyX) Also avoid compiler
warnings for missing initializers.
|
|
Problem: Python uses IndexError when a dict key is not found.
Solution: Use KeyError instead. (ZyX)
|
|
Problem: With Python errors are not always clear.
Solution: Print the stack trace, unless :silent is used. (ZyX)
|
|
Problem: Python threads still do not work properly.
Solution: Fix both Python 2 and 3. Add tests. (Ken Takata)
|
|
Problem: Python threads don't run in the background (issue 103).
Solution: Move the statements to manipulate thread state.
|
|
Problem: Python 3 does not preserve state beween commands.
Solution: Preserve the state. (Paul Ollis)
|
|
Problem: State specific to the Python thread is discarded.
Solution: Keep state between threads. (Paul)
|
|
Problem: Not possible to lock/unlock lists in Python interface.
Solution: Add .locked and .scope attributes. (ZyX)
|
|
Problem: More Python code can be shared between Python 2 and 3.
Solution: Move code to if_py_both.h. (ZyX)
|
|
Problem: SEGV in Python code.
Solution: Initialize len to zero. Use the right function depending on
version. (Maxim Philippov)
|
|
Problem: Python bindings silently truncate string values containing NUL.
Solution: Fail when a string contains NUL. (ZyX)
|
|
Problem: Internal error in :pyeval.
Solution: Handle failed object conversion. (ZyX)
|
|
Problem: PyCObject is not always defined.
Solution: Use PyObject instead.
|
|
Problem: PyObject_NextNotImplemented is not defined before Python 2.7.
(Danek Duvall)
Solution: Add #ifdefs.
|
|
Problem: Problems compiling with Python.
Solution: Pick UCS2 or UCS4 function at runtime. (lilydjwg)
|
|
Problem: Can't compile with Python 2.5.
Solution: Use PyCObject when Capsules are not available.
|
|
Problem: Evaluating Vim expression in Python is insufficient.
Solution: Add vim.bindeval(). Also add pyeval() and py3eval(). (ZyX)
|
|
Problem: has('python') may give an error message for not being able to load
the library after using python3.
Solution: Only give the error when the verbose argument is true.
|
|
Problem: Python 3: vim.error is a 'str' instead of an 'Exception' object,
so 'except' or 'raise' it causes a 'SystemError' exception.
Buffer objects do not support slice assignment.
When exchanging text between Vim and Python, multibyte texts become
gabage or cause Unicode Expceptions, etc.
'py3file' tries to read in the file as Unicode, sometimes causes
UnicodeDecodeException
Solution: Fix the problems. (lilydjwg)
|
|
Problem: Can't build with Python dynamically loading.
Solution: Add dll_PyType_Ready.
|