View Issue Details

IDProjectCategoryView StatusLast Update
0029235LazarusPackagespublic2016-08-22 04:08
ReporterBBazAssigned ToOndrej Pokorny 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version1.6RC1Product Build 
Target VersionFixed in Version1.7 (SVN) 
Summary0029235: [REG,SYNEDIT] TSynCompletion problem dut to use of highlighter property IdentChars
DescriptionThe following commit:

https://github.com/alrieckert/lazarus/commit/ed747e55fb894735ca2e8c33731d580b7d5f7e69

Changed 'TSynCompletion' so that if the current editor has an highlither, its 'IdentChars' property is used to lex the previous word.

This patch seemed OK with Laz IDE but actually it breaks any code editor made with synedit because by default 'IdentChars' returns all characters from the ansi charset expected the whites.
The consequence is that on completion, all the previous text can be replaced, instead of the last identifier. This happens if the current highlighter IdentChars getter function is overriden or not.

More detailed report then analysis of the issue:
- http://forum.lazarus.freepascal.org/index.php/topic,30663.msg196451.html#msg196451
- http://forum.lazarus.freepascal.org/index.php/topic,30663.msg196486.html#msg196486

As suggested in the forum I propose to change the default implementation of the IdentChars getter.
TagsNo tags attached.
Fixed in Revision51001,51024
LazTarget1.6
Widgetset
Attached Files

Activities

Maxim Ganetsky

2015-12-24 14:27

developer   ~0088209

This patch broke statistics form in POChecker. It hangs when opening this form.

Ondrej Pokorny

2015-12-24 16:03

reporter   ~0088214

@Maxim, fixed, thanks.

Ondrej Pokorny

2015-12-24 16:11

reporter   ~0088215

Last edited: 2015-12-25 12:17

View 2 revisions

>> As suggested in the forum I propose to change the default implementation of the IdentChars getter.

I am now a little bit struggling. Maybe we should keep the base IdentChars as they were:

function TSynCustomHighlighter.GetIdentChars: TSynIdentChars;
begin
  Result := [# 33..# 255];
end;

but override correct IdentChars in every syntax editor. What do you think?

What syntax editor did you have trouble with?

Can you attach a sample project please?

Ondrej Pokorny

2015-12-27 22:36

reporter   ~0088334

OK, let's keep the current version.

Issue History

Date Modified Username Field Change
2015-12-22 17:14 BBaz New Issue
2015-12-23 15:08 Ondrej Pokorny Fixed in Revision => 51001
2015-12-23 15:08 Ondrej Pokorny LazTarget => 1.6
2015-12-23 15:08 Ondrej Pokorny Status new => resolved
2015-12-23 15:08 Ondrej Pokorny Fixed in Version => 1.7 (SVN)
2015-12-23 15:08 Ondrej Pokorny Resolution open => fixed
2015-12-23 15:08 Ondrej Pokorny Assigned To => Ondrej Pokorny
2015-12-24 14:27 Maxim Ganetsky Note Added: 0088209
2015-12-24 14:27 Maxim Ganetsky Status resolved => assigned
2015-12-24 14:27 Maxim Ganetsky Resolution fixed => reopened
2015-12-24 16:03 Ondrej Pokorny Fixed in Revision 51001 => 51001,51024
2015-12-24 16:03 Ondrej Pokorny Note Added: 0088214
2015-12-24 16:11 Ondrej Pokorny Note Added: 0088215
2015-12-24 16:11 Ondrej Pokorny Status assigned => feedback
2015-12-25 12:17 Ondrej Pokorny Note Edited: 0088215 View Revisions
2015-12-27 22:36 Ondrej Pokorny Note Added: 0088334
2015-12-27 22:36 Ondrej Pokorny Status feedback => resolved
2015-12-27 22:36 Ondrej Pokorny Resolution reopened => fixed
2016-08-22 04:08 BBaz Status resolved => closed