Commit Graph

231 Commits

Author SHA1 Message Date
Andy Williams fe89f7fbde editor: trigger saves if selection cut or pasted 2015-05-30 10:31:46 +01:00
Andy Williams 642bb0ba85 elm_code: support setting custom fonts
For EDI create the config that would allow this to be altered.
Actual setting widget to follow...
2015-05-30 10:31:46 +01:00
Andy Williams fcce45fc82 Fix deletion inserting random data.
Off by one error (doubled). Classic.
Lesson: Run the tests you write!
2015-05-29 13:10:25 +01:00
Andy Williams de37470730 selection: fix crash when deleting large selection
snprintf is not the tool for simple string copy
- especially if not null terminated
2015-05-24 12:58:39 +01:00
Andy Williams 4c00c9e1fc Update to latest eolian (getting stable we hope).
Also mark code as a construction property
2015-05-20 14:18:20 +01:00
Andy Williams 8d9f952958 Fixup tests
Fixing compile errors and out of date tests. oops.
2015-05-18 19:40:06 +01:00
Andy Williams c84b148670 Update to latest .eo file type 2015-05-18 19:24:01 +01:00
Andy Williams 1c5717ffb1 editor: fix nulls being appended to lines
Should resolve issues with nulls being inserted
and also crashes on pasting into a selection
2015-05-18 15:49:24 +01:00
Andy Williams 7a8b0c8b93 editor: add pageup/down support
Page up or down by 85% of the visible window height
2015-05-12 23:15:25 +01:00
Andy Williams 703c63f426 eolian_gen fixes to inheritance 2015-05-11 23:17:44 +01:00
Andy Williams a44f55cf69 Update elm_code widget .eo doc for EFL master 2015-05-11 23:11:28 +01:00
Andy Williams c8d23dc720 editor: wrap left and right cursor moves around
when there is a line to move to we should wrap cursor movements
2015-05-05 22:38:02 +01:00
Andy Williams 246132b4ea editor: bind home and end keys 2015-05-05 21:49:21 +01:00
Andy Williams a5e1f82382 editor: correctly paste multiline windows text 2015-05-05 21:41:29 +01:00
Andy Williams ee9cec7ddd editor: Fix crash when pasting multi line
Not tracking length correctly so depending on what else is
in memory we could overrun the buffer
2015-05-05 21:40:22 +01:00
Andy Williams d2f14a82b7 elm_code: add a TODO/FIXME standard parser
Corret some callback code and re-parse each time the file is saved.
Use this to clean up save/parse code in EDI too
2015-04-20 01:21:03 +01:00
Andy Williams 4e7cae76dc elm_code: add multiline paste support.
Creating and breaking out a few helper text methods at the same time.
Test all that we can for this reasonably complex operation
2015-04-19 15:00:10 +01:00
Andy Williams 137dbed20b elm_code: retain line formatting on file callback
We don't need to reset all the lines in file load - just clear
2015-04-13 00:15:21 +01:00
Andy Williams 9cfe41ee00 syntax: reset status and hints when we reset token
re-use elm_code methods when we do this in edi
2015-04-12 23:04:46 +01:00
Andy Williams 462a60d85d syntax: don't slow down by repeating tokens
Clear out the token list before each parse callback loops
2015-04-12 17:25:20 +01:00
Andy Williams 8c0f74628b search: Fix issue when text is at end of line
Tests were wrong, fix and add more
2015-04-12 16:56:17 +01:00
Andy Williams 5e72e7e71e elm_code: Correctly delete tabs when mid-tab
Delete at least 1 char and move cursor to the beginning of the tab
2015-04-07 23:09:16 +01:00
Andy Williams 58c1e5bc82 elm_code: Fix position calculations at line end
Addresses random NULLs in content after newline
2015-04-07 23:05:47 +01:00
Andy Williams b6d0ced5ec elm_code: bring widget_text into widget object 2015-04-04 19:01:05 +01:00
Andy Williams 4cf18aed40 elm_code: refactor widget to seperate space.
Keeping the private files for elm_code cleaner
2015-04-04 18:17:01 +01:00
Andy Williams f50bff8e99 editor: Add a tooltip popup if you hover over a line with a warning attached 2015-04-04 17:51:39 +01:00
Andy Williams 151956ea93 editor: Fix performance of loading large files 2015-04-02 22:48:23 +01:00
Andy Williams 5a1629e7a4 editor: Fix performance of adding deleting lines
removed the numerous callbacks that were not needed
2015-04-02 00:32:16 +01:00
Andy Williams 7942fa8710 elm_code editor: Fix bug with newlines
Badness introduced with the tab work was padding lines with NULL
2015-03-30 23:36:28 +01:00
Andy Williams 3ce607322b elm_code editor: handle tabs when deleting
Make sure we're at the right position when we delete, backspace
or split lines with tabs in them
2015-03-30 20:07:45 +01:00
Andy Williams 73b612a340 elm_code: fix tests to provide elm_code widget
Required by new tab rendering changes
2015-03-29 20:52:38 +01:00
Andy Williams a5fbc90b14 elm_code: Fix minor mistakes with tab commit 2015-03-29 20:39:26 +01:00
Andy Williams ba44ecf1fa elm_code editor: display cursor over selection
If they overlap it's good to know where text will appear
2015-03-29 20:13:30 +01:00
Andy Williams e0e0eaa32c elm_code: Support rendering tabs
Add a tabstop configurable value so the view can be adjusted.
shuffle all content and tokens along when a tab is encountered.
2015-03-29 20:12:28 +01:00
Andy Williams 08daaed1f5 elm_code: Cut, copy and paste working
Current limitations that paste is into a single line
2015-03-28 17:57:47 +00:00
Andy Williams eee6e3c411 search: Update replace for elm_code selection code
That should be search and replace completely ported now
2015-03-28 16:05:36 +00:00
Andy Williams 94642cac2d elm_code selection: Support selection deletion
In the widget we always delete the selection if typing begins.
If delete or backspace was pressed don't execute the keystroke after.
2015-03-28 15:17:08 +00:00
Andy Williams 71233e8a30 clang: save errors and display if clicked
Using a gutter click in elm_code to print to console for now
2015-03-27 23:54:28 +00:00
Andy Williams c509a2ba98 Note that a fix is now temporary 2015-03-27 23:45:23 +00:00
Andy Williams b72fdea488 elm_code file: test windows with new eina fixes
Should pass from eina 1.13.99
2015-03-27 21:45:43 +00:00
Andy Williams 903d9a9875 fix wrong types / names 2015-03-25 22:59:42 +00:00
Andy Williams 71b80a1547 elm_code selection: complete multiline text get
ready for copy and cut functions
2015-03-25 22:55:32 +00:00
Andy Williams fabfa95d06 elm_code selection: support two line selection 2015-03-25 22:17:41 +00:00
Andy Williams 35866daf6a elm_code selection: test and implement single line
Multi line selection still to come
2015-03-25 21:55:00 +00:00
Andy Williams 7ffa533392 Merge branch 'master' into elm_code 2015-03-25 20:52:14 +00:00
Andy Williams 7eede66db6 elm_code: Remove accidental dep on efl-git 2015-03-25 14:05:47 +00:00
Andy Williams e2718aac97 elm_code: add text search functions.
Update the search and replace UI to work with the new elm_ode UI.
2015-03-22 22:36:04 +00:00
Andy Williams ef4e5ee686 elm_code selection: move cursor to selection 2015-03-22 22:28:07 +00:00
Andy Williams 036622efd2 elm_code widget: fire user change events
This does not yet have a "change" attached so does not
support undo/redo yet
2015-03-21 20:04:12 +00:00
Andy Williams 015b2cfa97 elm_code file: add save method to write out lines
use a temporary file as we may have mapped the data directly.
2015-03-21 19:25:25 +00:00
Andy Williams c335a5b921 elm_code file: get line ending chars
Quickly add support for the line end character sequence.
Just windows and Unix now, as per the enum defined.
2015-03-21 13:58:30 +00:00
Andy Williams 6509d5c1d6 elm_code selection: Input selecttion from mouse
When editable allow dragging the cursor with a mouse button
down then set up a selecttion.
2015-03-18 22:24:56 +00:00
Andy Williams 4398dd38f8 elm_code whitespace: only display actual newlines
No newlines at the end of a file if there is no other line
2015-03-18 22:18:34 +00:00
Andy Williams e4cf9ed41a elm_code: selection highlighting
Adding initial support for displaying selection within the widget
2015-03-17 22:42:03 +00:00
Andy Williams 433bac2c1b elm_code file: detect line endings
Check for Windows otherwise default to unix for now.
2015-03-15 23:07:31 +00:00
Andy Williams 7c5d0e3873 elm_code unicode: highlight tokens correctly
When encountering unicode characters make sure we highlight
in the correct columns rather than at the byte locations.
2015-03-14 16:42:56 +00:00
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