Skip to content
Commits on Feb 11, 2016
  1. @b4n

    c++: Fix a test result

    b4n committed
    748137b improved return types, but as
    this test case was added in parallel it wasn't updated as needed for
    the new, more correct, results.
  2. @b4n

    Merge pull request #862 from techee/tm_workspace_find_cleanup3

    b4n committed
    Rewrite scope completion v3.
    
    Closes #488 and #505.
  3. @b4n

    Merge pull request #879 from b4n/c/cxx11-raw-strings

    b4n committed
    c++: Fix parsing of C++11 raw string literals.
  4. @b4n

    Merge pull request #889 from b4n/c/return-type

    b4n committed
    C, C++, C#, D: Improve return type and var type recognition.
Commits on Feb 10, 2016
  1. @frlan

    Update i18n on NEWS

    frlan committed
  2. @frlan

    Update of German translation

    frlan committed
Commits on Feb 8, 2016
  1. @frlan

    Merge pull request #898 from zygimantus/master

    frlan committed
    lt translation updated
  2. @zygimantus

    lt translation updated

    zygimantus committed
Commits on Feb 7, 2016
  1. @eht16

    Merge pull request #878 from eht16/drop_obsolete_plugin_test_script

    eht16 committed
    Remove obsolete scripts/plugin_test.c
Commits on Jan 28, 2016
  1. @frlan

    Update of Japanese translation

    frlan committed
Commits on Jan 27, 2016
  1. @techee

    Remove scope prefix of variable types

    techee committed
    We only perform search based on variable name so if a variable is e.g. of
    the type std::Foo, we can drop the std:: prefix and search only for the
    Foo type.
Commits on Jan 26, 2016
  1. @b4n

    C, C++, C#, D: Improve return type and var type recognition

    b4n committed
    This is far from perfect and contains a lot of guessing.  It showed
    good results based on our tests cases, fixing several issues and not
    introducing any more issues (admittedly, after working around a subtle
    one regarding D static ifs).
    
    Closes #845.
Commits on Jan 25, 2016
  1. @b4n

    Merge pull request #839 from kugel-/gboxed-types

    b4n committed
    GBoxed types
  2. @b4n

    Merge pull request #874 from kugel-/sci-api-export

    b4n committed
    scintilla: add scintilla_object_* to the plugin api
  3. @b4n
Commits on Jan 24, 2016
  1. @giuspen @frlan

    updated language Italian

    giuspen committed with frlan
  2. @b4n
  3. @b4n

    read: Avoid possible NULL dereference in getNthPrevCFromInputFile()

    b4n committed
    Also, don't perform subtractions to check pointer bounds, to avoid
    unsigned value wraparound.  This is very unlikely as it would either
    mean a very large `nth` value or a very small value for the current
    line pointer, but better safe than sorry.
  4. @b4n

    read: Move logic for getting a previous character into a read function

    b4n committed
    This ties related logic together, making it less of a hack and easier
    to maintain, as well as accessible by all parsers if needed.
Commits on Jan 23, 2016
  1. @b4n

    c++: Fix parsing of C++11 raw string literals

    b4n committed
    See http://en.cppreference.com/w/cpp/language/string_literal
    
    Closes #877.
    
    ---
    
    This contains a pretty ugly hack to fetch the previous character, in
    order not to get fooled by string concatenation hidden behind a macro,
    like in `FOUR"five"`, which is not a raw string literal but simply the
    identifier `FOUR` followed by the string `"five"`.
    
    While this may sound uncommon, it is not and lead to complaints [2][3]
    when Scintilla [1] broke this when they introduced C++11 raw string
    literal support themselves.
    
    The implementation here still contains a bug with line continuations: a
    raw literal of the form:
    
    ```c
    const char *str = R\
    "xxx(...)xxx";
    ```
    
    is not properly recognized as such, although it's perfectly valid (yet
    probably very uncommon).  For the record, Scintilla has also suffers
    from this but nobody complained about it yet.
    
    [1] http://scintilla.org/
    [2] https://sourceforge.net/p/scintilla/bugs/1207/
    [3] https://sourceforge.net/p/scintilla/bugs/1454/
  2. @eht16

    Remove obsolete scripts/plugin_test.c

    eht16 committed
    This script was used in the nightly builds to verify plugins will load
    and have no undefined symbol references. Since the new way plugins
    are built and linked, this is no longer necessary.
    Additionally, this script won't work with new style geany_load_module()
    plugins.
Commits on Jan 19, 2016
  1. @kugel-

    plugin api: convert StashGroup to GBoxed internally

    kugel- committed
    Because the stash_group_new() is an exported API, it has to be at least a boxed
    type to be usable for gobject introspection. The boxed type uses reference
    counting as opposed to memory duplication.
    
    The obligatory stash_group_dup() is not exported (doesn't have to).
  2. @kugel-

    plugin api: convert TMSourceFile to GBoxed internally

    kugel- committed
    Because the tm_source_file_new() is an exported API, it has to be at least a
    boxed type to be usable for gobject introspection. The boxed type uses
    reference counting as opposed to memory duplication.
    
    The obligatory tm_source_file_dup() is not exported (doesn't have to).
  3. @kugel-

    scintilla: add scintilla_object_* to the plugin api

    kugel- committed
    Analogous to their legacy counterparts. Also required for gir-bindings
    generated via g-ir-scanner.
Commits on Jan 18, 2016
  1. @techee

    Fix member scope completion with nested members

    techee committed
    First, the search for existing type with the given scope should be done
    also for namespaces.
    
    Second, with the string operations we get no scope as empty string ""
    but the rest of TM functions expect scope to be set to NULL in such
    case. Fix that.
  2. @techee

    Remove duplicate names from scope search popup

    techee committed
    There may be duplicate tag names in the list e.g. when performing namespace
    search and overloaded methods are found.
  3. @techee

    Use language-specific context separator instead of hard-coded "::"

    techee committed
    This makes it possible to popup scope completion dialog for more languages.
  4. @techee

    Skip typedef resolution in namespace search if not needed

    techee committed
    When we already have a struct-like type in namespace search,
    we don't need any extra resolution - we already have the
    right type. Skip the whole typedef resolution in this case.
  5. @techee

    Improve anonymous type handling

    techee committed
    Make sure the anonymous types are from the same file as the
    variable of that type (or, when performing typedef resolution, from
    the same file as the typedef).
    
    On the way, simplify find_scope_members() a bit and fix some minor
    problems.
  6. @techee

    Skip [] when performing scope autocompletion

    techee committed
    In addition to skipping function parameters, we can also skip indexes so
    in something like
    
    foo[2].
    
    we get autocompletion for foo's type members.
  7. @techee

    Minor cleanup

    techee committed
    Make the unused code compile and remove unused tm_get_current_function()
    (we have similar symbols_get_current_function() and there's no reason
    to keep it)
  8. @techee

    Add a "prefix" search for non-scope autocompletion

    techee committed
    The main reason for separating m_workspace_find() into two parts is the
    fact that when matching only the prefix, the result may contain too
    many results and we need to go through all of them, return them and at the
    end discard most of them.
    
    For instance, when considering the linux kernel project with 2300000 tags
    and when autocompletion is set to be invoked after typing a single character,
    we get on average something like 100000 results (tag_num/alphabet_size).
    But from these 100000 results, we get only the first 30 which we display
    in the popup and discard the rest which means going through the list of
    the 100000 tags and comparing them for no reason.
    
    Thanks to using binary search for the start and the end of the sequence of
    matching tags (added in a separate patch), we can get the start of the
    sequence and the length of the sequence very quickly without going through
    it.
    
    For the prefix search we can limit the number of tags we are interested
    in and go through at most this number of returned tags (to be precise,
    times two, because we need to go both through the workspace array and
    global tags array and remove the extras only after sorting the two).
    
    It would be possible to combine both tm_workspace_find() and
    tm_workspace_find_prefix() into a single function but the result is a bit
    hard to read because some of the logic is used only in tm_workspace_find()
    and some only in tm_workspace_find_prefix() so even though there is some
    code duplication, I believe it's easier to understand this way.
  9. @techee

    Don't use anon_struct_* and similar members unless we are sure it's t…

    techee committed
    …he right one
    
    We can only be sure it's the right one if we previously resolved a
    typedef to it and the typedef was in the same file.
  10. @techee

    Simplify tag type specifications in scope search

    techee committed
    Consider types with members to have the same properties everywhere (this
    might differ language to language but this assumption should behave
    reasonably for any language).
    
    Don't check member type in find_scope_members_tags() - we already check
    scope which should be sufficient and will work even if some language
    uses function/variable instead of method/member/field.
  11. @techee

    Use only binary search to find first/last element in a row of equal tags

    techee committed
    The linear part may become expensive when there are many equal tags
    which can happen when partial search, used for non-scope completion,
    is used.
Something went wrong with that request. Please try again.