Douglas Gregor
a98034a25e
Improve the Python bindings for libclang in a few ways, from Eli
...
Bendersky. Specifically:
* Implemented a new function in libclang: clang_isAttribute
* Fixing TranslationUnit.get_includes to only go through the argument
* buffer when it contains something. This fixed a crash on Windows
* clang_getFileName returns CXString, not char*. Made appropriate
* fixes in cindex.py - now the relevant tests pass and we can see the
* full locations correctly again (previously there was garbage in
* place of the file name)
* Exposed clang_getCursorDisplayName to the python bindings
llvm-svn: 134460
2011-07-06 03:00:34 +00:00
Tobias Grosser
b0e0597d07
python bindings: Add support for different kind of completion chunks
...
llvm-svn: 124959
2011-02-05 17:54:10 +00:00
Tobias Grosser
b0949a17a0
python bindings: Get the string representation of a CompletionChunk
...
llvm-svn: 124958
2011-02-05 17:54:07 +00:00
Tobias Grosser
85bb48fce7
python bindings: Add CodeCompletionResults
...
llvm-svn: 124957
2011-02-05 17:54:04 +00:00
Tobias Grosser
2a8aac5ff4
python bindings: Add support for translationUnit.reparse().
...
This is the first step to make the clang_complete vim plugin work with
libclang. Reparsing improves parsing time from 0.8 to 0.25 secs for
one of my LLVM .cpp files.
llvm-svn: 124956
2011-02-05 17:54:00 +00:00
Tobias Grosser
4748651060
python bindings: Include local headers the right way.
...
llvm-svn: 124955
2011-02-05 17:53:55 +00:00
Tobias Grosser
0e19c192f5
python bindings: Remove unneeded instruction
...
llvm-svn: 124954
2011-02-05 17:53:53 +00:00
Tobias Grosser
5153e79931
python bindings: fix Diagnostics.range iterator
...
The iterator did never throw an IndexError. It was therefore not possible
to use it in a normal foreach loop as that loop would never stop.
llvm-svn: 124953
2011-02-05 17:53:51 +00:00
Tobias Grosser
82c18a502f
python bindings: Use python Diagnostics as function arguments
...
This improves the readability of the code and fixes one testsuite bug.
The bug happend, because we only stored the pointer to the diagnostic in the
FixIt iterator, but not the python Diagnostic object. So it could happen that
the FixIt iterator still exists, but the python Diagnostic object is freed.
However, as the python Diagnostic is freed the pointer to the diagnostic is also
freed and the FixIt iterator is referencing a freed pointer.
llvm-svn: 124952
2011-02-05 17:53:48 +00:00
Tobias Grosser
2128823e74
python bindings: Synchronize cursor kinds
...
clang-c/Index.h contained cursor kinds not yet available in the python bindings.
Contributed-By: jmuizelaar@mozilla.com
llvm-svn: 124951
2011-02-05 17:53:47 +00:00
Daniel Dunbar
d5a2a073a0
Rename 'CIndex' to 'libclang', since it has basically become our stable public
...
(C) API, and will likely grow further in this direction in the future.
llvm-svn: 102779
2010-04-30 21:51:10 +00:00
Benjamin Kramer
aaff78ec9c
Rename the new Iterator objects and raise an assertion instead of returning invalid objects when the key is out of range.
...
llvm-svn: 97881
2010-03-06 15:38:03 +00:00
Benjamin Kramer
ff90813e42
Update the python bindings for recent changes in the CIndex API.
...
llvm-svn: 97880
2010-03-06 14:53:07 +00:00
Daniel Dunbar
02968e53cf
CIndex: Switch CXSourceRange to proper half-open intervals.
...
- Doug, please review.
llvm-svn: 96162
2010-02-14 10:02:57 +00:00
Daniel Dunbar
ae4b77d99d
cindex/Python: Fix cindex-{dump,includes} examples to just pass all args
...
directly to Index, instead of requiring the input file to be first. This makes
the examples behave more like 'clang'.
For example,
ddunbar@giles:tmp$ echo '#include <string>' | python ~/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py -- -x c++ - | wc -l
114
ddunbar@giles:tmp$ echo '#include <stdio.h>' | python ~/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py -- -x c - | wc -l
10
llvm-svn: 96107
2010-02-13 18:33:28 +00:00
Daniel Dunbar
43813bf023
cindex/Python: Add TranslationUnit.get_includes, patch by Andrew Sutton!
...
llvm-svn: 96106
2010-02-13 18:33:18 +00:00
Daniel Dunbar
2037d4e4ea
cindex/Python: Update for clang_getDiagnosticRange... API changes.
...
llvm-svn: 96105
2010-02-13 18:33:03 +00:00
Daniel Dunbar
288edb5bda
cindex/Python: Turn off showing IDs by default, they are really slow to compute
...
pending a hash function. Also added a --max-depth argument, handy for timing and
limiting the volume of output.
llvm-svn: 94936
2010-01-31 00:41:15 +00:00
Daniel Dunbar
45dc842a0e
cindex/Python: Add a simple example which dumps assorted information about a translation unit.
...
llvm-svn: 94934
2010-01-30 23:59:14 +00:00
Daniel Dunbar
a7a354e3e3
cindex/Python: Add full support for Diagnostic and FixIt objects, available via TranslationUnit.diagnostics.
...
Several important FIXMEs remain:
- We aren't getting all the notes?
- There is still no way to get diagnostics for invalid inputs.
llvm-svn: 94933
2010-01-30 23:59:02 +00:00
Daniel Dunbar
15635b8f5c
cindex/Python: Update SourceLocation and SourceRange structures to match API changes.
...
Hurray for exposing implementation details!!!
llvm-svn: 94932
2010-01-30 23:58:50 +00:00
Daniel Dunbar
1e079a48ad
cindex/Python: Update Index.create for removal of displayDiagnostics.
...
llvm-svn: 94931
2010-01-30 23:58:39 +00:00
Daniel Dunbar
ce9a4faea5
cindex/Python: Update to support _getInstantiationLocation's new offset value.
...
llvm-svn: 94813
2010-01-29 17:02:32 +00:00
Daniel Dunbar
f91a8d64d4
cindex/Python: Move translation unit load functions to Index, there isn't a good reason to have separate static methods for this.
...
llvm-svn: 94419
2010-01-25 09:16:55 +00:00
Daniel Dunbar
dacede8349
cindex/Python: Support file objects as unsaved_files, albeit inefficiently.
...
llvm-svn: 94418
2010-01-25 09:16:41 +00:00
Daniel Dunbar
90986f5d3f
cindex/Python: Add Cursor test.
...
llvm-svn: 94397
2010-01-25 00:44:21 +00:00
Daniel Dunbar
9ad194dc18
cindex/Python: Implement support for unsaved/remapped files.
...
llvm-svn: 94396
2010-01-25 00:44:11 +00:00
Daniel Dunbar
7baaee93e7
cindex/Python: Fix/simplify Index.parse() passing command line arguments.
...
llvm-svn: 94394
2010-01-25 00:43:31 +00:00
Daniel Dunbar
36104a8665
cindex/Python: Update comments, add module docstrings, add LLVM headers.
...
llvm-svn: 94392
2010-01-25 00:43:08 +00:00
Daniel Dunbar
3e555fd85f
cindex/Python: Move Cursor.is_ methods to CursorKind, and add test.
...
Also, add CursorKind.get_all_kinds().
llvm-svn: 94389
2010-01-24 21:20:39 +00:00
Daniel Dunbar
195cdeceaf
cindex/Python: Implement explicit objects for CursorKind enumeration values.
...
llvm-svn: 94388
2010-01-24 21:20:29 +00:00
Daniel Dunbar
55d6964e28
cindex/Python: Fetch SourceLocation instantiation location information on lazily, it isn't free.
...
Also, add repr() support to SourceRange.
llvm-svn: 94387
2010-01-24 21:20:21 +00:00
Daniel Dunbar
aca5acfd01
cindex/Python: Add Cursor.get_usr().
...
Also, change Cursor.spelling to return None for non-decls, for consistency with get_usr().
llvm-svn: 94386
2010-01-24 21:20:13 +00:00
Daniel Dunbar
501e91f3b7
cindex/Python: Return null cursors as None instead of exposing this notion.
...
llvm-svn: 94385
2010-01-24 21:20:05 +00:00
Daniel Dunbar
942453284f
cindex/Python: Convert CXString objects to regular Python strings below API.
...
llvm-svn: 94384
2010-01-24 21:19:57 +00:00
Daniel Dunbar
322be3a46e
Simplify.
...
llvm-svn: 94383
2010-01-24 21:19:48 +00:00
Daniel Dunbar
18b75a4f10
cindex/Python: Remove Cursor.file forwarding method, this doesn't really fit the API.
...
llvm-svn: 94382
2010-01-24 21:19:40 +00:00
Daniel Dunbar
fd7caa25a6
cindex/Python: Add Cursor.get_children()
...
llvm-svn: 94359
2010-01-24 04:10:22 +00:00
Daniel Dunbar
7bcfd6eb6d
cindex/Python: Remove Declaration class, this has been removed from the API.
...
llvm-svn: 94358
2010-01-24 04:10:06 +00:00
Daniel Dunbar
8f8f35bd6c
cindex/Python: Eliminate Entity class, it has been removed from CIndex.
...
llvm-svn: 94357
2010-01-24 04:09:58 +00:00
Daniel Dunbar
b34dde72e3
Simplify.
...
llvm-svn: 94356
2010-01-24 04:09:51 +00:00
Daniel Dunbar
e79aba4c72
cindex/Python: Add TranslationUnit.cursor.
...
llvm-svn: 94355
2010-01-24 04:09:43 +00:00
Daniel Dunbar
3615fd27f2
cindex/Python: Tweak Source{Location,Range}
...
- Add __repr__ on SourceLocation.
- Fix File object construction to use c_object_p type, and use None instead of
invalid File objects.
- Make SourceRange.{start,end} properties.
llvm-svn: 94354
2010-01-24 04:09:34 +00:00
Daniel Dunbar
3cdcfe03bf
cindex/Python: Make Cursor.is_... functions not properties.
...
Also, add ValueError check before calling Cursor_spelling.
llvm-svn: 94353
2010-01-24 04:09:23 +00:00
Daniel Dunbar
74716e5ebd
Initial checkin of CIndex Python bindings, by Andrew Sutton!
...
- Some tweaks by me for API changes, Darwin, and x86_64 support. Still needs
substantial updating to match recent CIndex API changes.
llvm-svn: 94349
2010-01-24 02:02:07 +00:00