Includes test files for Lua, JavaScript, PHP to verify the Paper Tonic Modern colorscheme's diagnostic virtual text colors across different LSPs and their expected diagnostics.
70 lines
1.7 KiB
PHP
70 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* Test file for PHP LSP diagnostics
|
|
* Tests error, warning, info, and hint virtual text colors
|
|
*
|
|
* Note: Configure Intelephense to show different diagnostic levels:
|
|
* - diagnostics.undefinedSymbols = true (errors)
|
|
* - diagnostics.undefinedVariables = true (warnings)
|
|
* - diagnostics.unusedSymbols = "hint" (hints)
|
|
*/
|
|
|
|
// Define some valid functions and variables first to avoid cascading errors
|
|
function validFunction(): void {
|
|
echo "This is valid\n";
|
|
}
|
|
|
|
$definedVariable = "I exist";
|
|
|
|
// ERROR: Undefined function
|
|
someUndefinedFunction();
|
|
|
|
// ERROR: Undefined variable
|
|
echo $completelyUndefined;
|
|
|
|
// WARNING/HINT: Unused variable (depends on Intelephense config)
|
|
$unused = "Never used anywhere";
|
|
|
|
// Valid code to separate errors
|
|
validFunction();
|
|
|
|
// ERROR: Wrong number of arguments
|
|
function requiresTwoArgs(string $a, string $b): void {
|
|
echo "$a $b\n";
|
|
}
|
|
requiresTwoArgs("only one"); // Missing second argument
|
|
|
|
// ERROR: Type mismatch
|
|
function expectsString(string $param): void {
|
|
echo $param;
|
|
}
|
|
expectsString(123); // Passing int to string parameter
|
|
|
|
// WARNING: Variable might not be defined in all code paths
|
|
if (rand(0, 1)) {
|
|
$maybeUndefined = "sometimes defined";
|
|
}
|
|
// Commenting out to reduce errors: echo $maybeUndefined;
|
|
|
|
// Valid usage
|
|
echo $definedVariable . "\n";
|
|
|
|
// ERROR: Calling method on non-object
|
|
$notAnObject = "string";
|
|
$notAnObject->someMethod();
|
|
|
|
// ERROR: Invalid array access (multiple levels)
|
|
$emptyArray = [];
|
|
echo $emptyArray['key']['nested']['deep'];
|
|
|
|
// Valid function call
|
|
requiresTwoArgs("hello", "world");
|
|
|
|
// HINT/WARNING: Unreachable code (some configs)
|
|
function hasDeadCode(): string {
|
|
return "done";
|
|
echo "This is unreachable"; // Dead code
|
|
}
|
|
|
|
echo "Test complete!\n";
|
|
|