![]() |
Модераторы: Vitalik |
![]() ![]() ![]() |
|
Sep. |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: нет Всего: 6 |
Here is screenshot with endings in CF-rule ![]() and without endings ![]() Of course, you told this in first posts in this thread. I only want to say that there no bug for me =) No problems =) But changes aren't major. I don't have so much time to improve component, there only small fixes. Yes, it is compile error =(
I can send compiled version, if it helps... =) --------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
||||
|
|||||
DavidCl0nel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.7.2006 Где: Berlin/Germany Репутация: 1 Всего: 1 |
>>Here is screenshot with endings in CF-rule
I show you on Monday a screenshot with the error ![]() Do you have sent the source code of 11.08. with your changes? I havent got something till now. |
|||
|
||||
Sep. |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: нет Всего: 6 |
Yes, of course. Now i send once more. May be try to other your mail? Or you can download SynMix, there was very little changes in it since upload. OFF: best prog i've seen to compare sources - WinMerge, and it is free. Это сообщение отредактировал(а) Sep. - 20.8.2006, 08:21 --------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
|||
|
||||
DavidCl0nel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.7.2006 Где: Berlin/Germany Репутация: 1 Всего: 1 |
Your mail was catched by spam filter, i saw the second one moving in the spam-folder and could move it back. Your first mail was deleted I think, because the spam box was deleted to early (one day i think).
I had to change the workarounds a little bit
The other workaround in the Redo-case like this one. Check your mail with the complete source. I hope you have now no errors like me. PS: I merge it with TotalCommander Compare. ;) |
|||
|
||||
DavidCl0nel |
|
||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.7.2006 Где: Berlin/Germany Репутация: 1 Всего: 1 |
Some other changes, please test it with these little changes.
After Pasting I had to call RescanForFoldRanges, to get the new FoldRange work. Please test it with and without this change. Maybe your control update it correctly like on destroying fold-marker (for -> f or). The OnChange-issue...
Delete had to changed. In older version i cant delete the line between two blocks (If-block, free-line, other-if-block. Put cursor at begin of free line and press delete - it will be ignored). So this change:
And the Plugin-functions changed once again. I decided to rewrite the LinesInserted for the Return-At-Begin-On-Line-Case.
Edit: And very important. The OnChange-issue:
I have my FoldRegion-Infos in the Control, not in the Highlighter. (i set it if i create a form in my source code with all keywords for folds). And in my highlighter I dont have this information, so he dont do something and exit the function. With my change he looks also in the Control, if the Flag is set. Now it works (for -> f or). Great. ![]() Last Bug I found: - Copy something in LineSelect-Mode. If you insert it somewhere, it overwrite the text. If you paste it in an simple text editor and recopy it and paste it in Syn it works. Something is wrong in the SpecialClipboardFormat. Это сообщение отредактировал(а) DavidCl0nel - 21.8.2006, 14:53 |
||||||||||
|
|||||||||||
Sep. |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: нет Всего: 6 |
I cant test it because of bug in delphi highlighter with drop of foldranges. But i see that func is called and other foldranges don't crush =) (In php HL there one char foldranges.)
Viva!
strange =( and when i copy text in LineSelect and try to paste in NormalSelect it paste nothing I added code from last your post to code from your mail and have now this bugs =(: 1. when select all collapsed line in NormalSelect and delete - there left [+] on gutter. And undo don't return collapsed text. 2. if select this line by click on gutter and delete - text of line deletes, but foldrange dont deletes and moves one string above
It because of -1 here. For what it needed? And i still search for FreeMem(IndentGuides); error. May be i need to write freeing of array of array manually. Nobody to ask for, because Vitalik have no internet connection for 3 weeks =( --------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
||||||||
|
|||||||||
DavidCl0nel |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.7.2006 Где: Berlin/Germany Репутация: 1 Всего: 1 |
My last bug is still exists. If I use NormalInsert instead of LinesInsert (there are a Case that decide this) I can insert it "correct", but LineInsert should insert it on another way. But I have some errors if i Undo this block-paste.
Edit: It occurs because Undo want to delete the pasted block and this called LinesDeleted. And LinesDeleted fill the Undo-Buffer again with the collapsed fold. After LinesDeleted he also undo this element and restore the collapsed text again. Not really what i want. ;) Dont know at the moment, how to prevent this. One other error was with selecting a complete line next to a collapses line. There he start at wrong position and copy also the collapsed lines. I have corrected it and I send you later a mail with the corrected. Another little fix is needed in LinesInserted too. Your problems: 1. Yes ![]() Solution in UndoItem: If nothing is in, he cant go through the array and cant add. Fixed.
2. -1 was needed sometimes. There are so much cases, and for some I test it with and without -1. I cant remember for what -1 was good. Now I dont have this -1. PS: Click on Gutter select the line? Dont have this feature. He collapse and uncollapse the block. Edit: If you put cursor one line above a block (collapsed or not collapsed, no matter) - its a free line - and press DEL-Key, he deletes the foldrange in this function because of no -1. This case had to catched on some way. Solution:
There was a CaretY+1, but i dont know, why it should added 1. 3. FreeMem compiles good. But in whole function the IndentGuides only is filled and needed in commented lines. Nobody use it and you can delete the variable. Это сообщение отредактировал(а) DavidCl0nel - 22.8.2006, 12:30 |
||||
|
|||||
DavidCl0nel |
|
||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.7.2006 Где: Berlin/Germany Репутация: 1 Всего: 1 |
This I could only solve with an interface change. ![]() Also an other -1 was wrong in this function (UpdateFoldRanges). Now it looks like:
Following functions had to change. The "upper" functions dont need it, but had to pipe it to the last function, where it is needed. TCustomSynEdit.DoLinesDeleted(FirstLine, Count: integer; AddToUndoList: Boolean); TSynEditPlugin.LinesDeleted(FirstLine, Count: integer; AddToUndoList: Boolean); virtual; abstract; TSynEditCodeFoldingPlugin.LinesDeleted(FirstLine, Count: integer; AddToUndoList: Boolean); override; LinesInserted was changed a little bit. New is the Collapsed-Check.
GetSelText copy a line to early. Fix is in For-loop with First+1:
Another bug is in the workaround for GetSelText. This workaround should copy the right parts of course. So it had to make different things in all 3 selection modes. In ExecuteCommand it is now much more difficult:
In SetSelTextExternal it is the same. (Copy this block and rename the variable from sText to it) That is why i original think of SetCompleteText..... So it is a little bit difficult, but it works now. But i dont like it. I send a mail with complete source. I think I now have found and fix the most common problems. I hope it... It must have an end sometime.... Это сообщение отредактировал(а) DavidCl0nel - 22.8.2006, 15:12 |
||||||||||
|
|||||||||||
Sep. |
|
||||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: нет Всего: 6 |
You need click and drag mouse down or up to select lines
It's need to edit another DoLinesDeleted(CaretY{+1}, 1); too in ecDeleteLastChar: to prevent drop of foldrange when press BkSpace on start of line with foldrange. [quote]IndentGuides. Nobody use it and you can delete the variable.[/qoute] Heh=) And you may comment out 'SynRegExpr' in uses clause, it not used too.
Ok, but mail differs from your last post =). I added code in last post and test it.
Great! Bug with column select , delete and undo deleteion fixed! I found small bugs: 1. Bug when cursor at end of line with foldrange and press BkSpace - drop of current foldrange 2. When delete line before last string of foldrange then start of foldrange moves one line down There are bug with keystrokes. If i assign to any of it shortcut:=0 (none) Then it thinks that key=0 toggles it. But in onKeyDown assigment of key=0 (i cant assign to it -1) is stops processing key. Need to edit SynKeyCmds.pas
and
--------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
||||||||||||
|
|||||||||||||
Sep. |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: нет Всего: 6 |
Heh, some error =): you write
There another error 3. Press Ctrl-A and then any letter - will get AV. If there not full text selected - then all ok. Looks like bug in SetSelTextPrimitiveEx but i cant find it =( --------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
||||
|
|||||
DavidCl0nel |
|
||||||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.7.2006 Где: Berlin/Germany Репутация: 1 Всего: 1 |
>>It's need to edit another DoLinesDeleted(CaretY{+1}, 1); too in ecDeleteLastChar: to prevent drop of foldrange when press BkSpace on start of line with foldrange.
Ok >>There are bug with keystrokes I dont know, what you do with keystrokes, but ok. ;) >>1. Bug when cursor at end of line with foldrange and press BkSpace - drop of current foldrange I cant press BkSpace there. It is ignored. >>2. When delete line before last string of foldrange then start of foldrange moves one line down Yes. It was CanExecuteInline.
There was a CaretY+1. >>Heh, some error =): you write Yes i found it today. It should be on both BlockEnd. Another change with Undo for Clipboard:
And in SetSelTextExternal..
In RedoItem is the third place for the case (i dont like it - really)
Then Undo-Redo-Undo works for Cut and Delete a fold. >>3. Press Ctrl-A and then any letter - will get AV. If there not full text selected - then all ok. Looks like bug in SetSelTextPrimitiveEx but i cant find it =( No. But maybe it is solved with upper changes. Other question: On PaintLines for Drawing the indentGuides for non collapsed folds, why you have this:
I like it, if it is the current fold of cursor, that he draw the line in Red. Why you set it here to other things and draw it gray? Edit: I found a very tiny bug with the IndentGuides on one situation. If you have a Keyword for FoldEnd similar to FoldStart (for example IF-ENDIF) he found after END (if you set the cursor there) the new IF and think he found a new Fold and dont draw the IndentGuides correctly in red. Fix is:
With this new if Pos he dont make this little failure and draw the IndentGuides in whole keyword. Last Edit: LinesInserted was wrong, if you insert a line in a block. Then he moves the complete foldrange, with start... Not right. It is now:
And now I send a email. Это сообщение отредактировал(а) DavidCl0nel - 23.8.2006, 15:16 |
||||||||||||||
|
|||||||||||||||
DavidCl0nel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.7.2006 Где: Berlin/Germany Репутация: 1 Всего: 1 |
Today fixes:
If you select from back to end a word or more lines and delete it, the UndoBuffer (in one of this workarounds) isnt filled correctly, because of the wrong "direction". This fix always set BlockEnd after BlockBegin. Maybe I edit some other changes in this post later, but it looks good yet. ![]() |
|||
|
||||
Sep. |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: нет Всего: 6 |
Looks more stable than ever!
Now we can update SynMix. Next step to excelence =) SynMix update 24/08/06 great thanx to DavidCl0nel download 400kb
I have this only for more bolder visual appearance of highlighted indent guide. It draws only even dots in normal state. I did that it first draw line under these even dots - so looks more bolder.
Seems like it is bug of Syn, because work good in LeakTest =( Strange... Some non-common bug of original CF left. May be now its time for it? =) 1. Select collapsed line from start to end by mouse in NormalSelect. Then paste above collapsed line - it'll paste without colapsed text and drop of foldrange of collapsed line. --------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
||||
|
|||||
DavidCl0nel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 31.7.2006 Где: Berlin/Germany Репутация: 1 Всего: 1 |
>>I have this only for more bolder visual appearance of highlighted indent guide. It draws only even dots in normal state. I did that it first draw line under these even dots - so looks more bolder
Ok, but then you have to reset the color to the original (in this case red), not in all cases back to black. You should buffer the color in a variable or make the decision after your extra bold line. >>1. Select collapsed line from start to end by mouse in NormalSelect. Then paste above collapsed line - it'll paste without colapsed text and drop of foldrange of collapsed line. Hmm, a little bit yes. Paste without collapsed text is true, but he don't drop the fold. I had to catch this case in CopyToClipboard (CutToClipboard the same). But I don't know, if I have time for it today. |
|||
|
||||
Sep. |
|
||||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 22.7.2004 Репутация: нет Всего: 6 |
But color already backuped above: OldColor := Canvas.Brush.Color; and restored after.
It will be great, if there willn't be workaround in CopyToClipboard. Because it don't called when Ctrl-V / Ctrl-C. It only called by program. Strange that i have drop of foldrange. May be again Delphi5 =) Ok, there some small fixes. Wrong working if you select text by mouse from right to left (BlockBegin greater than BlockEnd)
and
Sometimes dont called OnGutterClick method when WordWrap enabled. Need to edit TCustomSynEdit.DoOnGutterClick
and allways copy to clipboard in unicode if possible. It usefull only for russian locale i think.
--------------------
Syn - TotalCommander lister plugin | SynTree - coders sourcebook |
||||||||||||
|
|||||||||||||
![]() ![]() ![]() |
Rules and hints for the forum "SynUniHighlighter" | |
|
Hello, dear user! This is official forum for SynUniHighlighter component and unofficial forum for SynEdit, Codefolding and all related projects. Some rules for the forum: 1. Do not create new topic if exactly the same already exists. 2. Don't ask several questions in the same topic. One topic - one question. 3. If discussion changes to far from original topic context, then create a separate thread for new discussion subject. If you already registered then click here to log in. If you havent't registered yet then click here and register. You need to type username, password (twice), email (twice) and security code. Next you need go here and choose English language instead of Russian and press Enter. Some hints for enghlish-speaking users:
|
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | SynUniHighlighter and SynEdit (English Language) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |