Commit Graph

225 Commits

Author SHA1 Message Date
Andy Williams ec58b84e3e elm_code editor: fix crash backspacing last line
fill an empty line if we're deleting the last line
2015-03-08 12:07:29 +01:00
Andy Williams 6457da6482 elm_code edit: split content on newline.
Tokens also need to be split so this is text only for now
2015-03-08 11:52:12 +01:00
Andy Williams 7f787e8cae elm_code widget: backspace or delete merges lines
This is text only for now but serves as editor foundation.
2015-03-08 11:33:07 +01:00
Andy Williams e951c13e91 elm_code line: move freeing to the line file 2015-03-08 11:15:31 +01:00
Andy Williams ed521af168 elm_code line: unsigned int for length 2015-03-08 11:14:02 +01:00
Andy Williams f96c0345ff elm_code edit: support backspace and delete.
don't propogate backspace as other widgets use it to navigate
adjust tokens left when we remove content and remove if 0 width token.
2015-03-08 09:44:26 +01:00
Andy Williams 4e14c1a069 elm_code unicode: update when editing
issues here with inserting unicode which I need to get to
2015-03-07 22:35:59 +01:00
Andy Williams a2026576a2 Add initial unicode support for elm_code
Note the number of utf8 characters when we load the data.
Make sure the widget is referencing unicode_length
for all our metrics.
2015-03-07 20:48:02 +01:00
Andy Williams 2e5d0e7e02 elm_code editor: adjust tokens when we insert text 2015-02-28 22:50:18 +00:00
Andy Williams 9e184f6270 elm_code demo: Show multiple widgets for one code.
Illustrates that we can display a single elm_code in many widgets
2015-02-27 15:33:06 +00:00
Andy Williams 8517f47124 Merge branch 'master' into devs/ajwillia-ms/elm_code 2015-02-27 15:13:06 +00:00
Andy Williams ec9c327ce1 editor: update to latest elm_code and show whitespace 2015-02-28 16:28:22 +00:00
Andy Williams 3800160732 Merge branch 'master' into elm_code
Conflicts:
	elm_code/src/lib/elm_code_diff_widget.c
2015-02-28 15:31:57 +00:00
Andy Williams dec03ca188 elm_code widget: add show_whitespace option
display items for space, tab and newline if requested
2015-02-28 14:59:42 +00:00
Andy Williams c4f97f2f3e elm_code: support line insertion
in our widget call a line insertion on enter pressed
2015-02-28 14:20:32 +00:00
Andy Williams f4a760f4a5 elm_code: require an elm_code for each widget
In our finalizer we ensure that an elm_code is set.
No longer allow code_set to be called after construction.
2015-02-28 13:22:38 +00:00
Andy Williams 20c108ea32 elm_code tests: fix test path 2015-02-28 13:14:18 +00:00
Andy Williams df310e14f4 elm_code: Fix finalized check macro 2015-02-27 15:07:38 +00:00
Andy Williams a7adf4f1f6 elm_code edit: Support insert of any single char.
broadens from alphanumeric to include punctionation
and various symbols.
2015-02-26 23:56:10 +00:00
Andy Williams bc1cfc7b87 elm_code parse: Add standard parsers starting with diff.
Allow code instances to have provided parsers added easily.
These can be chained to have multiple passes.
2015-02-26 23:19:09 +00:00
Andy Williams a79c01f1da merge changes from master 2015-02-26 13:56:50 +00:00
Andy Williams b89e88accc elm_code: Move parser callbacks to private.
Don't expose the internal callback mechanics, just the addition of parsers
2015-02-26 13:54:46 +00:00
Andy Williams 627adf8d2a syntax: Actually use the elm_code parser api.
Improve the API to allow passing of user data to the calls.
Yes, I forgot about this, it works well so remove the STYLE_SET callback
2015-02-24 00:32:40 +00:00
Andy Williams 67eb529aa3 elm_code: Add missing status icons from new states 2015-02-24 00:26:58 +00:00
Andy Williams ca9b64e3c8 elm_code: display a line-width marker if requested 2015-02-23 21:52:49 +00:00
Andy Williams b08274d8b1 Merge branch master
conflicts in elm_code_widget.c resolved
2015-02-22 23:38:54 +00:00
Andy Williams e329755283 elm_code: Fill the widget and gutter to the end
This helps with refreshing too so we blank removed lines
2015-02-22 22:13:33 +00:00
Andy Williams d9a94200cc elm_code: don't run resize code more than needed
Our cells are now always the size of the widget so
we can avoid the safety checks...
2015-02-22 21:50:34 +00:00
Andy Williams c3e0883808 elm_code: Support text insertion for simple edits.
Hook into the widget for elm_code_test and edi editors.
Only alphanumeric and space, but it's a start.
2015-02-22 20:07:08 +00:00
Andy Williams cb83e9e912 elm_code: Support multi-line tokens
Adding a new token to each line it covers.
Each token references the end line so newline behaviour can be set
2015-02-21 18:24:17 +00:00
Andy Williams 685abd7054 syntax: Update clang to output elm_code tokens
Addition of a refresh line command to say we're done.
We no longer need an active window for highlighting
as it's so much faster!
2015-02-21 17:30:17 +00:00
Andy Williams 2b64f2fd1b Merge branch 'master' into elm_code
Conflicts:
	elm_code/src/lib/elm_code_widget.c
	elm_code/src/lib/elm_code_widget.eo.c
	elm_code/src/lib/elm_code_widget.eo.h
2015-02-19 22:39:11 +00:00
Andy Williams d59ce760ca eo: remove generated files from git 2015-02-19 22:35:01 +00:00
Andy Williams 4e1af4b488 elm_code: Update FIXME to be realisic - the textgrid size_set does not append 2015-02-19 21:52:41 +00:00
Andy Williams 5d0224efa5 elm_code: get / set the cursor position
When the cursor is updated make sure we have scrolled
so it's visible. Also adjust focus next points too.
2015-02-19 21:16:18 +00:00
Andy Williams 9dea8c488d elm_code: Actually use it as our main editor window!
Need to hook in the clang highlighting and undo stack to the elm_code_widget
2015-02-19 00:22:07 +00:00
Andy Williams 384a12282e Add a temporary fix for some scroll/append/refresh issue with layout 2015-02-17 23:56:20 +00:00
Andy Williams f9709f915c An update to get closer to make check passing for windows.
Thanks (and credit) to Vincent Torri again
2015-02-15 20:35:41 +00:00
Andy Williams 9a0f269e92 elm_code: Tidying our callbacks and line manipulation.
Now the line_done callback allows styling to be set during the load process.
2015-02-14 23:14:06 +00:00
Andy Williams 4f49e230bd elm_code: focus: block focus leaving text area when editable.
As well as setting when we should not have focus leave us a theme has been added.
This allows us to extend from elm_entry which is better suited to us.
2015-02-14 18:49:51 +00:00
Andy Williams a1d9eae33c Improving focus control a little 2015-02-11 22:01:37 +00:00
Andy Williams aa741e4898 Fixing some warnings on Windows.
Thanks, Vincent Torri
2015-02-11 21:25:09 +00:00
Andy Williams 32e73da189 Use public types as far as possible 2015-02-11 19:13:48 +00:00
Andy Williams 486a50986c elm_code: Update demo to split various functions. Adding more pages as use cases emerge 2015-02-10 23:03:18 +00:00
Andy Williams 2c3c4f504d elm_code: Tidy up some unused code and fix up some focus management 2015-02-10 23:02:45 +00:00
Andy Williams 9f6f9a52ff Fix a few warnings and possible build issues 2015-02-08 00:55:51 +00:00
Andy Williams d8bdb6b892 Finally fix make distcheck - clean up Makefiles properly 2015-02-07 16:05:42 +00:00
Andy Williams e146890b40 Fix issues with distcheck.
Only remaining is a permissions problem with skeleton - will be fixed soon.
2015-02-06 23:45:50 +00:00
Andy Williams f83c43df0b elm_code: Bring in line numbers and a left gutter
This styling makes it easier to see that symbols are not part of the text
but also makes line numbers part of the widget and they can be easily
switched on or off.
2015-02-03 13:59:50 +00:00
Andy Williams fb8a4351b7 Fix the tests to work with widget improvements 2015-02-03 13:55:20 +00:00
Andy Williams dd47f60ed5 Correctly lookup icon paths - @fix T2044.
Set up elm with the appropriate compile option variables.
2015-02-02 23:52:04 +00:00
Andy Williams c22f0d2a0a elm_code: Update style and alignment of gutter 2015-01-29 14:05:20 +00:00
Andy Williams ff72fa0651 elm_code: And complete the line number render first case.
Next some styling would indeed be nice...
2015-01-29 00:50:07 +00:00
Andy Williams 4486e7244b elm_code: initial work on line numbers 2015-01-29 00:36:28 +00:00
Andy Williams cc495a2131 elm_code: Fix click calculations.
We must take into account our scroll position and also where we are positioned
within the screen layout
2015-01-28 22:38:49 +00:00
Andy Williams 545ecc5182 Add proper gravity control when lines are being added to the widget.
Most useful will be (0.0, 1.0) which will cause the display to act like 'tail'.
2015-01-28 14:16:46 +00:00
Andy Williams e7be4523b4 Merge branch 'master' into elm_code
Conflicts:
	elm_code/lib/elm_code_widget.c
2015-01-28 00:43:57 +00:00
Andy Williams 876faa4eb5 elm_code: update scroller so content fills space.
We want to extend backgrounds under scrollbars but only scroll if it's too big.
2015-01-28 00:39:56 +00:00
Andy Williams 4b0350c205 elm_code: When appending lines ignore widget size now we're scrolling 2015-01-28 00:20:58 +00:00
Andy Williams fc43214208 elm_code: Update resizing to reflect only the space that's required 2015-01-27 22:13:59 +00:00
Andy Williams ad0d199f36 Allow up/down/left/right to participate in focus control.
When we cannot move within the cursor availability then note it
the callback from elm will see if the event should be propagated so we
report the veto when we're contained or allow propagation when we overrun
2015-01-27 17:02:45 +00:00
Stephen Houston 78790f8fd3 Elm_Code: Keep up with min size so scroller works properly. 2015-01-27 10:43:32 -06:00
Andy Williams 45a6b3880b And document the wiget API 2015-01-26 23:09:22 +00:00
Andy Williams c91fb02a5a Bind up/down/left/right to cursor control.
Add a veto callback that blocks the up/down hitting the focus manager. This needs to be improved so once we hit the top / bottom it will pass on
2015-01-26 19:46:30 +00:00
Andy Williams d9663a6b3d Merge in key_down fixes from branch 'devs/ajwillia-ms/elm_code' 2015-01-26 19:06:27 +00:00
Andy Williams bc69b360bc Refactor eo widget2 to widget - update in edi too 2015-01-26 19:05:34 +00:00
Stephen Houston 0a279a34df Elm_Code: For box to get key down, it needs to have a child receiving key down. 2015-01-26 10:28:04 -06:00
Andy Williams ebcbde4882 Port everything to use new widget API. Remove old widget API 2015-01-26 14:00:37 +00:00
Andy Williams 6e57210c3a Manipulate the position of the cursor.
When clicking in edit mode just change the position of it to where was clicked.
Known issue that this does not work with the keyboard
2015-01-25 23:15:37 +00:00
Andy Williams 3c9e554b7b elm_code: Add focus support for the elm_code widget.
Hook into the internal elementary API to be part of the focus chain
2015-01-25 17:18:21 +00:00
Andy Williams 29d31ad9f1 Complete port of elm_code widget to eo as widget2 2015-01-24 22:07:00 +00:00
Andy Williams eec17b5904 Fix eo and regen to generate the right code based on okra's changes.
We need to inherit from Elm_Box and not get in the way of smart resizing...
2015-01-24 08:26:09 +00:00
Stephen Houston 82e57792ca Elm_Code_Widget2: Inherit from box instead of layout since a layout is not provided. 2015-01-23 20:35:14 -06:00
Andy Williams aeadf18b06 Merge branch 'master' into elm_code 2015-01-23 23:42:07 +00:00
Andy Williams 1bd963c084 install our test diff for elm_code_test binaries 2015-01-23 23:41:53 +00:00
Andy Williams 49512b1d31 Experimental eo commit - structure in place and it's resizing but won't render 2015-01-23 22:55:13 +00:00
Andy Williams 0c4ce5afd7 Merge in master 2015-01-17 22:08:16 +00:00
Andy Williams a7cf4ffdbf Add a click handler for lines in a widget 2015-01-17 19:57:15 +00:00
Andy Williams 8a9c645353 Tidying some more headers to try and get windows builds working 2015-01-10 17:55:04 +00:00
Andy Williams d7a9c351f4 Allow up/down/left/right to participate in focus control.
When we cannot move within the cursor availability then note it
the callback from elm will see if the event should be propagated so we
report the veto when we're contained or allow propagation when we overrun
2015-01-27 14:34:11 +00:00
Andy Williams e179b349bd Disable NLS by default when cross compiling, remove broken need for libintl 2015-01-04 14:07:35 +00:00
Andy Williams d11e94f0fe Elm_Code now compiling on Windows, thanks to Vincent Torri for the patch.
Next to tackle some non-standard EDI code to complete the compilation
2015-01-04 12:00:40 +00:00
Andy Williams 74a1333620 Update various headers to use Elm_Code to load all our public headers and fix a few build glitches 2014-12-24 18:16:38 +00:00
Andy Williams 344e2e8eca Remove circular include of the elm_code_file.h header 2014-12-24 18:06:51 +00:00
Andy Williams ad3d545415 Fix up headers and tests to remove the exposure of some private methods.
Add some documentation whilst we're there too
2014-12-05 09:39:40 -06:00
Andy Williams 13064e06c6 Add a cursor to the view.
Create a backing data structure to start tracking more useful widget information
2014-12-05 09:20:11 -06:00
Andy Williams 688a89fc75 Merging in refactoring of elm_code file lookups and edi mime lookups.
Elm_Code file no longer required for elm_code to function (in memory is created automatically).
2014-11-28 23:53:23 +00:00
Andy Williams 888e4217ec Use an in-memory file for new elm_codes by default.
This is overridden as before by calling elm_code_file_open which will free the previously set file on that elm_code instance
2014-11-28 08:55:42 +00:00
Andy Williams 70ec5e065d Heading to a working windows build.
Copy fixes into Skeleton file too so that it creates libraries that work in the same way
2014-11-25 23:07:50 +00:00
Andy Williams c7a238894a Render all filename headers in a diff widget 2014-11-23 00:19:36 +00:00
Andy Williams 724c9a5a66 Fix warning 2014-11-22 22:44:37 +00:00
Andy Williams b4a64ccc40 Add a simple diff widget based on an incoming diff file.
Load that into edi if we load a diff or patch file
2014-11-22 22:36:57 +00:00
Andy Williams 5bd7cc9bbc Add an option to change the font size of our widget
demonstrate in the test and use it to make the logs more readable in edi
2014-11-22 19:14:53 +00:00
Andy Williams e3610e1602 Fix a test missed in move to mem-mapping 2014-11-19 23:20:23 +00:00
Andy Williams 65b67ec898 Actually use the eina_file memory mapping
Any appended or modified lines need to be stored seperately.
Always check for modified content before using the memory map from the
backing file.
2014-11-19 22:39:00 +00:00
Andy Williams aa5b70972c Fix minor issues I saw in passing 2014-11-19 22:37:00 +00:00
Andy Williams b5288b4223 Fix a memory corruption issue on some systems 2014-11-19 22:35:01 +00:00
Andy Williams ad14b51251 Fix render test and an end of line corner case 2014-11-18 23:46:24 +00:00
Andy Williams 147a7ddd39 Add some text mode icons to markup the lines for now 2014-11-18 22:48:37 +00:00
Andy Williams 62fd0bb3f7 Add tests PASSED and FAILED to elm_code statuses
and the widget rendering.

Use this in EDI to add a test summarising panel.
Tests are executed in verbose mode so we can list
all the tests that have been run - can summarise
later if we wish...
2014-11-18 21:11:10 +00:00
Andy Williams 2299130410 Fix crash when appending a line off and the body
is already larger than the viewport
2014-11-18 20:56:47 +00:00
Andy Williams 649c98a53b Add parse hooks for lines and files within elm_code.
This required changing the load order so file opens would read the elm_code->parsers setup. This makes for a better setup anyhow
2014-11-16 23:52:41 +00:00
Andy Williams dc2e25fbb6 Refactor the widget token parsing so we can put it under test. Add simple test that demonstrates tokens split by space. 2014-11-13 23:26:30 +00:00
Andy Williams d568992493 A little more markup to the diff example with character add/rem/change highlighting 2014-11-13 21:51:23 +00:00
Andy Williams f7e0ad9dd8 Add a simple token system to allow us to render some text styles 2014-11-13 21:34:47 +00:00
Andy Williams 269409f5cd Add a file load callback also - respect that with a widget refresh when called 2014-11-12 22:59:05 +00:00
Andy Williams 6465de9ca6 Fix compilation of tests 2014-11-12 14:05:56 +00:00
Andy Williams 0e901e5352 Fix the types of Eo Events - addresses lots of compiler warnings 2014-11-09 21:53:30 +00:00
Andy Williams 1a2f4d1ad4 Fixing some warnings. Not ideal handling of the Eo_Event_Description but it's less warn-tastic 2014-11-09 18:07:03 +00:00
Andy Williams a3e6ec6876 Add some simple version control status for lines too.
Add a simple display of how that could work to elm_code_tesst
2014-11-09 14:44:35 +00:00
Andy Williams 2796024005 Take line coloring to the end of the line 2014-11-09 00:47:00 +00:00
Andy Williams d110515fb1 Passing Eo events from Elm_Code to the Evas_Object when the backend data changes. Track a list of all widgets connected to the Elm_Code so we can signal them all. Add API to change status of a line which will refresh the widget too. 2014-11-06 23:43:56 +00:00
Andy Williams b1d1e370ec Add a simple elm_code_test binary that loads the widget and inserts some demo text 2014-11-05 13:55:37 +00:00
Andy Williams 1c314d9312 Fix a crash when resizing if the file is longer than the viewport 2014-11-05 13:36:54 +00:00
Andy Williams 87d360b43f Adding some initial concept of status flags for a line and default enum to start working on color pallette in our widget. Load enough colors to provide these statuses and hook into the EDI log panel implementation 2014-11-05 00:01:28 +00:00
Andy Williams 80373debf7 Add an initial stab at an elm_code widget. It currently does not refresh at any time other than load or resize, so is not respecting content updates, but it's a start.
Use it in place of the list of elm_label objects that were rendered in the log panel. Not colour highlighted yet, but one thing at a time.
2014-11-04 22:21:49 +00:00
Andy Williams 7ed960fc52 Allow appending of lines to an Elm_Code_File, allow Elm_Code_File objects to be created empty without reading from a filesystem source 2014-11-04 21:05:29 +00:00
Andy Williams a767095339 Add basic structure for elm_code object - namespacing the elm_code_file properly to keep it clean 2014-10-26 22:47:27 +00:00
Andy Williams ce501b64c2 Add some documentation grouping 2014-10-26 22:08:52 +00:00
Andy Williams 9fcb769ba3 Update tests to use the proper api check 2014-10-21 22:28:12 +01:00
Andy Williams 4584abf84c warning-- 2014-10-21 22:27:10 +01:00
Andy Williams 3629995847 Load the content and verify from our test files.
Includes an eina_file_map_lines workaround for blank lines
2014-10-19 22:33:49 +01:00
Andy Williams 15bc74b80a Load lines sequentially and insert to a structure for reference 2014-10-19 22:29:44 +01:00
Andy Williams 6846385d44 A pretty slim test of file loading and initial path apis 2014-10-17 23:36:07 +01:00
Andy Williams 997b338270 Base addition of elm_code area within the edi codebase, including an empty test to verify it's working 2014-10-17 21:36:03 +01:00