feat(ide): add shared JetBrains/PhpStorm configuration

- Code style: PSR-12 for PHP, 2-space indent for JS/TS/YAML
- Inspection profile: Laravel-friendly, reduced noise in vendor
- Run configurations: Composer test/lint, PHPStan, clone-repos
- Scopes: Packages, Vendor, Tests for focused searches
- Dictionary: Project-specific terms (agentic, livewire, etc.)
- PHP 8.4 language level, Laravel Idea multimodule support
- File watcher: Pint auto-format (disabled by default)
- Excludes: vendor/ and node_modules/ for faster indexing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Snider 2026-02-01 01:22:33 +00:00
parent 9a52fd937a
commit c99101a29d
21 changed files with 353 additions and 2 deletions

11
.gitignore vendored
View file

@ -5,8 +5,15 @@ packages/*
# Core CLI cache (transient data, not config) # Core CLI cache (transient data, not config)
.core/cache/ .core/cache/
# IDE # IDE - share useful configs, ignore user-specific
.idea/ .idea/workspace.xml
.idea/tasks.xml
.idea/shelf/
.idea/httpRequests/
.idea/dataSources/
.idea/dataSources.local.xml
.idea/copilot*.xml
.idea/material_theme*.xml
.vscode/ .vscode/
*.swp *.swp
*.swo *.swo

17
.idea/.gitignore generated vendored Normal file
View file

@ -0,0 +1,17 @@
# User-specific files
/workspace.xml
/tasks.xml
/shelf/
/httpRequests/
/dataSources/
/dataSources.local.xml
/copilot*.xml
# Sensitive data
/webServers.xml
/deployment.xml
/.env
# OS/editor artifacts
*.iws
.DS_Store

79
.idea/codeStyles/Project.xml generated Normal file
View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<!-- PHP PSR-12 Style -->
<PHPCodeStyleSettings>
<option name="ALIGN_KEY_VALUE_PAIRS" value="false" />
<option name="ALIGN_PHPDOC_PARAM_NAMES" value="false" />
<option name="ALIGN_PHPDOC_COMMENTS" value="false" />
<option name="ALIGN_ASSIGNMENTS" value="false" />
<option name="ALIGN_MATCH_ARM_ARROW" value="false" />
<option name="BLANK_LINES_BEFORE_RETURN_STATEMENT" value="1" />
<option name="KEEP_RPAREN_AND_LBRACE_ON_ONE_LINE" value="true" />
<option name="SPACE_AFTER_UNARY_NOT" value="false" />
<option name="LOWER_CASE_BOOLEAN_CONST" value="true" />
<option name="LOWER_CASE_NULL_CONST" value="true" />
<option name="FORCE_SHORT_DECLARATION_ARRAY_STYLE" value="true" />
<option name="PHPDOC_BLANK_LINE_BEFORE_TAGS" value="true" />
<option name="PHPDOC_BLANK_LINES_AROUND_PARAMETERS" value="false" />
<option name="PHPDOC_WRAP_LONG_LINES" value="true" />
<option name="MULTILINE_CHAINED_CALLS_SEMICOLON_ON_NEW_LINE" value="true" />
<option name="COMMA_AFTER_LAST_ARRAY_ELEMENT" value="true" />
<option name="COMMA_AFTER_LAST_PARAMETER" value="true" />
<option name="COMMA_AFTER_LAST_MATCH_ARM" value="true" />
<option name="BLANK_LINE_BEFORE_RETURN_STATEMENT" value="true" />
<option name="NAMESPACE_BRACE_STYLE" value="1" />
</PHPCodeStyleSettings>
<codeStyleSettings language="PHP">
<option name="BLANK_LINES_AFTER_PACKAGE" value="1" />
<option name="BLANK_LINES_BEFORE_IMPORTS" value="1" />
<option name="BLANK_LINES_AFTER_IMPORTS" value="1" />
<option name="BLANK_LINES_AROUND_CLASS" value="1" />
<option name="BLANK_LINES_AROUND_METHOD" value="1" />
<option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
<option name="CLASS_BRACE_STYLE" value="1" />
<option name="METHOD_BRACE_STYLE" value="1" />
<option name="ELSE_ON_NEW_LINE" value="true" />
<option name="CATCH_ON_NEW_LINE" value="true" />
<option name="FINALLY_ON_NEW_LINE" value="true" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="false" />
<option name="SPACE_BEFORE_IF_PARENTHESES" value="true" />
<option name="SPACE_BEFORE_WHILE_PARENTHESES" value="true" />
<option name="SPACE_BEFORE_FOR_PARENTHESES" value="true" />
<option name="SPACE_BEFORE_CATCH_PARENTHESES" value="true" />
<option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="true" />
<option name="CALL_PARAMETERS_WRAP" value="5" />
<option name="METHOD_PARAMETERS_WRAP" value="5" />
<option name="ARRAY_INITIALIZER_WRAP" value="5" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
</codeStyleSettings>
<!-- JavaScript/TypeScript -->
<codeStyleSettings language="JavaScript">
<option name="SPACE_BEFORE_METHOD_PARENTHESES" value="true" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="TypeScript">
<option name="SPACE_BEFORE_METHOD_PARENTHESES" value="true" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<!-- YAML -->
<codeStyleSettings language="yaml">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
</component>
</project>

8
.idea/codeStyles/codeStyleConfig.xml generated Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
</project>

29
.idea/core-devops.iml generated Normal file
View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/packages" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-php/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-tenant/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-admin/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-api/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-mcp/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-agentic/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-bio/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-social/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-analytics/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-notify/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-trust/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-support/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-commerce/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-content/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-tools/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-uptelligence/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-developer/vendor" />
<excludeFolder url="file://$MODULE_DIR$/packages/core-template/vendor" />
<excludePattern pattern="node_modules" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

34
.idea/dictionaries/hostuk.xml generated Normal file
View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="ProjectDictionaryState">
<dictionary name="hostuk">
<words>
<w>agentic</w>
<w>biohost</w>
<w>devops</w>
<w>fileable</w>
<w>hostuk</w>
<w>laravel</w>
<w>livewire</w>
<w>middlewares</w>
<w>mcp</w>
<w>multitenancy</w>
<w>namespacing</w>
<w>notifyhost</w>
<w>oauth</w>
<w>pint</w>
<w>phpstan</w>
<w>sanctum</w>
<w>serializable</w>
<w>socialhost</w>
<w>tailwindcss</w>
<w>tenancy</w>
<w>trusthost</w>
<w>uptelligence</w>
<w>uuid</w>
<w>uuids</w>
<w>vite</w>
<w>webhook</w>
<w>webhooks</w>
</words>
</dictionary>
</component>

26
.idea/inspectionProfiles/Host_UK.xml generated Normal file
View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Host UK" />
<!-- PHP Inspections -->
<inspection_tool class="PhpUnused" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpMissingReturnTypeInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PhpMissingParamTypeInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PhpUnusedLocalVariableInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpUnusedPrivateMethodInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpUnusedPrivateFieldInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PhpArrayShapeAttributeCanBeAddedInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PhpDocMissingThrowsInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<!-- Laravel-specific: don't warn about facades -->
<inspection_tool class="PhpUndefinedMethodInspection" enabled="true" level="ERROR" enabled_by_default="true">
<scope name="Vendor" level="INFORMATION" enabled="false" />
</inspection_tool>
<!-- Ignore TODO comments in vendor -->
<inspection_tool class="TodoComment" enabled="true" level="WARNING" enabled_by_default="true">
<scope name="Vendor" level="INFORMATION" enabled="false" />
</inspection_tool>
<!-- TypeScript/JavaScript -->
<inspection_tool class="TypeScriptUnresolvedReference" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="JSUnusedLocalSymbols" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="true" />
<option name="PROJECT_PROFILE" value="Host UK" />
<version value="1.0" />
</settings>
</component>

16
.idea/laravel-idea.xml generated Normal file
View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="LaravelSettings">
<option name="routeNamespaceModule" value="" />
<option name="routeNamespaceWeb" value="" />
<option name="viewPath" value="" />
<option name="routeNamespaceApi" value="" />
<option name="controllerNamespace" value="" />
<option name="basePath" value="$PROJECT_DIR$/packages/core-php" />
<option name="apiResourceNamespace" value="" />
<option name="resourceNamespace" value="" />
<option name="multipleModules" value="true" />
<option name="livewireEnabled" value="true" />
<option name="bladeDirectiveIgnorePrefix" value="" />
</component>
</project>

9
.idea/misc.xml generated Normal file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/core-devops.iml" filepath="$PROJECT_DIR$/.idea/core-devops.iml" />
</modules>
</component>
</project>

17
.idea/php.xml generated Normal file
View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PhpProjectSharedConfiguration" php_language_level="8.4">
<option name="suggestChangeDefaultLanguageLevel" value="false" />
</component>
<component name="PhpIncludePathManager">
<include_path>
<path value="$PROJECT_DIR$/packages/core-php/vendor" />
</include_path>
</component>
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PhpCSFixerOptionsConfiguration">
<option name="transferred" value="true" />
</component>
</project>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Clone All Repos" type="ShConfigurationType">
<option name="SCRIPT_TEXT" value="" />
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/scripts/clone-repos.ps1" />
<option name="SCRIPT_OPTIONS" value="" />
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
<option name="INTERPRETER_PATH" value="powershell" />
<option name="INTERPRETER_OPTIONS" value="-ExecutionPolicy Bypass -File" />
<method v="2" />
</configuration>
</component>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Composer Lint (core-php)" type="ComposerRunConfigurationType">
<option name="command" value="lint" />
<option name="workingDir" value="$PROJECT_DIR$/packages/core-php" />
<method v="2" />
</configuration>
</component>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Composer Test (core-php)" type="ComposerRunConfigurationType">
<option name="command" value="test" />
<option name="workingDir" value="$PROJECT_DIR$/packages/core-php" />
<method v="2" />
</configuration>
</component>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="PHPStan (core-php)" type="PhpUnitRunConfigurationType" factoryName="PHPUnit">
<CommandLine workingDirectory="$PROJECT_DIR$/packages/core-php" />
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" />
<option name="externalSystemIdString" value="com.jetbrains.php.phpunit" />
<option name="scriptParameters" value="analyse" />
<option name="vmOptions" />
</ExternalSystemSettings>
<EXTENSION ID="PhpQualityToolRunConfigurationExtensionSettingsManager">
<QualityTool>
<option name="tool" value="PHPStan" />
</QualityTool>
</EXTENSION>
<method v="2" />
</configuration>
</component>

4
.idea/scopes/Packages.xml generated Normal file
View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="DependencyValidationManager">
<scope name="Packages" pattern="file[core-devops]:packages//*" />
</component>

4
.idea/scopes/Tests.xml generated Normal file
View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="DependencyValidationManager">
<scope name="Tests" pattern="file[core-devops]:packages//tests//*||file[core-devops]:packages//*/Tests//*" />
</component>

4
.idea/scopes/Vendor.xml generated Normal file
View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<component name="DependencyValidationManager">
<scope name="Vendor" pattern="file[core-devops]:packages//vendor//*" />
</component>

6
.idea/vcs.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

25
.idea/watcherTasks.xml generated Normal file
View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectTasksOptions">
<TaskOptions isEnabled="false">
<option name="arguments" value="$FilePath$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" value="Laravel Pint - Format on save" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="php" />
<option name="immediateSync" value="false" />
<option name="name" value="Pint" />
<option name="output" value="" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="$ProjectFileDir$/packages/core-php/vendor/bin/pint" />
<option name="runOnExternalChanges" value="false" />
<option name="scopeName" value="Packages" />
<option name="trackOnlyRoot" value="true" />
<option name="workingDir" value="$FileDir$" />
<envs />
</TaskOptions>
</component>
</project>