there is a quite complex case that non-thread safe code
that may occur crash or wrong behavior of enventor.
just improve the thread safe code to avoid the situation.
Previously, autocomp list moved to selected part name position because
autocomp list did not disappear when mouse down event occurred.
Now, an event rectangle is added to catch mouse down event and autocomp
list disappears when mouse down event occurs.
@fix T3738
Summary:
Enventor window stops responding on double clicking "min" on Windows.
Because of approaching the index in which the cur_context doesn't exist, the crash happens.
*cur_context[] in parser_attribute_get() edc_parser.c
Test Plan:
1. launch enventor on Windows
2. add image using live edit
3. double click "min" on editor
@TSAM-3524
Reviewers: Jaehyun_Cho, Hermet
Differential Revision: https://phab.enlightenment.org/D3972
auto save function saves edc file and updates preview by using timer.
auto save timer is applied when entry is changed or redo/undo is done.
auto save timer is cancelled when candidate list or auto complete list
appears.
Uses the autocomplete context parser for recognizing keywords
with the same names in different contexts. For example:
the attributes "min" and "max" for a description context
should be integer values in range from 0 to 1000; but for a
"text" context those attributes should be boolean.
Curently add recognition for a "min" and "max" attributes in the "text" content.
@fix T2712
Summary:
For cases when the autocomplete list contain
a lot of items, that the list enables scrollbar. This make impossible
to scroll last item by Down arrows. It is happens because the
focus is not allow for elm_list widget. This patch bring
selected item manually.
Reviewers: Hermet
Differential Revision: https://phab.enlightenment.org/D3040
Summary:
prevously in cases when necessary node of
the lexem tree wasn't find - was displayed the
candidate list with the root node
candidates (collections, images, color_classes, etc).
Now the candidate list do not displayed at all.
Reviewers: Hermet
Differential Revision: https://phab.enlightenment.org/D2972
Summary:
text that placed between quotes is
excepted from recognize keywords. Previously
when inside was string like this:
'images.normal: "123.png";' the autocomplete parser
is recognize the dot, that placed inside quotes.
It is broke the searching keyword in candidates tree.
Reviewers: Hermet
Differential Revision: https://phab.enlightenment.org/D2958
Summary:
Support new *.edc syntax.
Each lexem node can have a many different names.
It useful for parts in new edc syntax (swallow {}, image {} ... )
Change "description" lexem to "desc"
Reviewers: Hermet
Differential Revision: https://phab.enlightenment.org/D2785
Summary:
On keypress up or down button doesn't need
to allow focus to the ctxpopup.
@fix T2522
Reviewers: Hermet
Maniphest Tasks: T2522
Differential Revision: https://phab.enlightenment.org/D2765
Summary:
Attribute "dot" make possible to mark lexems, that
can use the '.' symbol. Like image.normal: "bla";
This commit fix issue, when pressing '.' after any
keyword was shown candidate list.
Reviewers: Hermet
Differential Revision: https://phab.enlightenment.org/D2709
Summary: Tree structure of lexems didn't freed, when feature terminating.
Reviewers: Hermet
Differential Revision: https://phab.enlightenment.org/D2727
Summary:
When context_lexem_thread_cb is canceled - possible, that
td->utf8 memory, that allocated at context_lexem_get
didn't freed.
Reviewers: Hermet
Differential Revision: https://phab.enlightenment.org/D2726
Summary:
By press ctrl_l+space will be shown popup with the candidates list,
that relevant to current cursor position.
Added API enventor_object_auto_complete_list_show as public.
Reviewers: Hermet, jpeg
Maniphest Tasks: T2496
Differential Revision: https://phab.enlightenment.org/D2720
before change this, backspace is not working for auto complete,
so user can't cancel the popup.
this change is reverted to the old one code (118e86e0dd)
Summary:
For case when the list of candidates is shown after typing
'.', "backspace" didn't work. It happens because the queue was
already cleared, when the user press "backspace". But at the
same time list of the candidates is presented and shown.
Reviewers: Hermet
Differential Revision: https://phab.enlightenment.org/D2714
Summary:
When '.' typed without keyword, function context_lexem_thread
is returning NULL pointer to the lexem node. This cause segfault,
when the lexem node is used for prepare the candidates list
in candidate_list_show function.
Reviewers: Hermet
Maniphest Tasks: T2504
Differential Revision: https://phab.enlightenment.org/D2712
Summary:
In case, when user typed keyword and add '.' symbol, will be
shown list of possible keywords.
For example:
rel1. -> will be shown list: relative, offset, to, to_x, to_y.
Depends D2648
@fix T2178
Reviewers: Hermet, Jaehyun
Subscribers: jpeg
Projects: #enventor
Maniphest Tasks: T2178
Differential Revision: https://phab.enlightenment.org/D2651
Summary:
Now parsing and actualizing context of current cursor position
happens in additional thread.
@fix T2467
Reviewers: Jaehyun, Hermet
Projects: #enventor
Maniphest Tasks: T2467
Differential Revision: https://phab.enlightenment.org/D2648
Summary:
Chack status of the flag *(autocomp_data)->enabled,
when entry "changed" callback is called.
Reviewers: Hermet
Differential Revision: https://phab.enlightenment.org/D2707
The hardcoded list of the strings from auto_comp_code.h is replaced by
description of the relationships between keywords.
This descriptions is stored in autocomp.src file.
Now the autocomplete feature is monitoring context of the
inputted text, and provide list of the keywords, that
relevant to current context.
For add new relationships between keywords need
only add it into autocomp.src in correct hierarchical order.