Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

1<?php
2
3/**
4 * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
5 * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
6 * SPDX-License-Identifier: AGPL-3.0-only
7 */
8namespace OC\Preview;
…lines 9–19 unchanged (11 lines)

After

1<?php
2
3declare(strict_types=1);
4
5/**
6 * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
7 * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
8 * SPDX-License-Identifier: AGPL-3.0-only
9 */
…lines 10–21 unchanged (12 lines)

Before

program
php_tag "<?php"
comment "/**\n * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and "...
namespace_definition
namespace "namespace"
namespace_name
name "OC"
\ "\\"
name "Preview"
; ";"
comment "//.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m),"...
class_declaration (+31 nodes collapsed)

After

program
php_tag "<?php"
declare_statement
declare "declare"
( "("
declare_directive
strict_types "strict_types"
= "="
integer "1"
) ")"
; ";"
comment "/**\n * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and "...
namespace_definition
namespace "namespace"
namespace_name
name "OC"
\ "\\"
name "Preview"
; ";"
comment "//.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m),"...
class_declaration (+31 nodes collapsed)