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;
…lines 9–16 unchanged (8 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–18 unchanged (9 lines)

Before

program
php_tag "<?php"
comment "/**\n * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and "...
namespace_definition
namespace "namespace"
namespace_name
name "OC"
; ";"
comment "/**\n * Exception thrown whenever access to a resource has\n *"...
class_declaration
class "class"
name "ForbiddenException"
base_clause
extends "extends"
qualified_name
\ "\\"
name "Exception"
declaration_list
{ "{"
} "}"

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"
; ";"
comment "/**\n * Exception thrown whenever access to a resource has\n *"...
class_declaration
class "class"
name "ForbiddenException"
base_clause
extends "extends"
qualified_name
\ "\\"
name "Exception"
declaration_list
{ "{"
} "}"