Subject: bug#40857: Invisibility specs do not apply to specified spaces

From: Clément Pit-Claudel <[email-masked]>
Date: Sun, 26 Apr 2020 12:04:43 -0400

On 26/04/2020 11.20, Eli Zaretskii wrote:
>> From: Clément Pit-Claudel <[email-masked]>
>> Date: Sat, 25 Apr 2020 19:18:55 -0400
>>
>> Consider the following program:
>>
>> (with-current-buffer (get-buffer-create "*spaces*")
>>   (erase-buffer)
>>   (let ((indent (propertize " " 'display '(space :width 3))))
>>     (put-text-property (point) (progn (insert indent "r1\n") (point)) 'invisible 'a)
>>     (put-text-property (point) (progn (insert indent "r2\n") (point)) 'invisible 'b))
>>   (add-to-invisibility-spec 'a)
>>   (pop-to-buffer (current-buffer)))
>>
>> The first record (r1) is hidden, but not the indentation that precedes it; so, instead of looking like this:
>>
>>    r2
>>
>> The buffer looks like this:
>>
>>       r2
> 
> I don't think this is a bug.

Indeed not. As I said in the original method, and as you summarized: (This is because the invisible property doesn't apply to the display spec.)
The feature request is to have a way to add an invisible property to specified spaces.