From f71da0219b6cae41928f36ebf793844a8959c9f6 Mon Sep 17 00:00:00 2001 From: cx-git-agent Date: Tue, 21 Apr 2026 17:46:39 -0500 Subject: [PATCH] feat: enhance xcodeproj, xcassets, scheme, Info.plist, and entitlements xcodeproj build settings: - Add CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED for localization checks - Add GCC_C_LANGUAGE_STANDARD=gnu17 for C language standard - Add LLVM_LTO=YES for Release link-time optimization - Add ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS - Add ENABLE_INCOMING_NETWORK_CONNECTIONS for MCP agent server - Add ENABLE_PREVIEWS for SwiftUI preview support xcassets (14 new color sets): - EditorBackground, SidebarBackground, ConsoleBackground - KeywordColor, StringColor, CommentColor, TypeColor, NumberColor - LineNumberColor, ToolbarTint, CurrentLineHighlight - ErrorHighlight, WarningHighlight - GitAddedColor, GitModifiedColor, GitDeletedColor - All with proper light/dark mode variants - Remove orphan icon_64x64.png and icon_base.png (fixed warnings) xcscheme: - Add targeted code coverage for CxIDE target only - Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Adv v- Ad- Ad- Ad- Ad- Ad- ALD_- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Ad- Aunch arg (disabled) Info.plist: - Add 12 new document types: C, ObjC, Python, Shell, JS, TS, HTML, CSS, YAML, XML, Plain Text, Property List Entitlements: - Add network.client and network.server for agent HTTP/WebSocket - Add files.user-selec- Add files.user-selec- Add filads.read-write - Add- Add- Add- Add- Aderminal com- Add- Add- Add- Add- Aderminal com- Add- Add- Add- Adrestore workspace state All 53 tests passing --- .../AppIcon.appiconset/icon_64x64.png | Bin 4808 -> 0 bytes .../AppIcon.appiconset/icon_base.png | Bin 1332 -> 0 bytes .../CommentColor.colorset/Contents.json | 38 ++++++ .../ConsoleBackground.colorset/Contents.json | 38 ++++++ .../Contents.json | 38 ++++++ .../EditorBackground.colorset/Contents.json | 38 ++++++ .../ErrorHighlight.colorset/Contents.json | 38 ++++++ .../GitAddedColor.colorset/Contents.json | 38 ++++++ .../GitDeletedColor.colorset/Contents.json | 38 ++++++ .../GitModifiedColor.colorset/Contents.json | 38 ++++++ .../KeywordColor.colorset/Contents.json | 38 ++++++ .../LineNumberColor.colorset/Contents.json | 38 ++++++ .../NumberColor.colorset/Contents.json | 38 ++++++ .../SidebarBackground.colorset/Contents.json | 38 ++++++ .../StringColor.colorset/Contents.json | 38 ++++++ .../ToolbarTint.colorset/Contents.json | 38 ++++++ .../TypeColor.colorset/Contents.json | 38 ++++++ .../WarningHighlight.colorset/Contents.json | 38 ++++++ CxIDE.entitlements | 10 ++ CxIDE.xcodeproj/project.pbxproj | 11 ++ .../xcshareddata/xcschemes/CxIDE.xcscheme | 36 +++++- CxIDETests/EditorViewModelTests.swift | 6 +- Info.plist | 120 ++++++++++++++++++ 23 files changed, 787 insertions(+), 4 deletions(-) delete mode 100644 Assets.xcassets/AppIcon.appiconset/icon_64x64.png delete mode 100644 Assets.xcassets/AppIcon.appiconset/icon_base.png create mode 100644 Assets.xcassets/CommentColor.colorset/Contents.json create mode 100644 Assets.xcassets/ConsoleBackground.colorset/Contents.json create mode 100644 Assets.xcassets/CurrentLineHighlight.colorset/Contents.json create mode 100644 Assets.xcassets/EditorBackground.colorset/Contents.json create mode 100644 Assets.xcassets/ErrorHighlight.colorset/Contents.json create mode 100644 Assets.xcassets/GitAddedColor.colorset/Contents.json create mode 100644 Assets.xcassets/GitDeletedColor.colorset/Contents.json create mode 100644 Assets.xcassets/GitModifiedColor.colorset/Contents.json create mode 100644 Assets.xcassets/KeywordColor.colorset/Contents.json create mode 100644 Assets.xcassets/LineNumberColor.colorset/Contents.json create mode 100644 Assets.xcassets/NumberColor.colorset/Contents.json create mode 100644 Assets.xcassets/SidebarBackground.colorset/Contents.json create mode 100644 Assets.xcassets/StringColor.colorset/Contents.json create mode 100644 Assets.xcassets/ToolbarTint.colorset/Contents.json create mode 100644 Assets.xcassets/TypeColor.colorset/Contents.json create mode 100644 Assets.xcassets/WarningHighlight.colorset/Contents.json diff --git a/Assets.xcassets/AppIcon.appiconset/icon_64x64.png b/Assets.xcassets/AppIcon.appiconset/icon_64x64.png deleted file mode 100644 index 166c71c9db44b31d2e60616d28c10e413b056182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4808 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 diff --git a/Assets.xcassets/AppIcon.appiconset/icon_base.png b/Assets.xcassets/AppIcon.appiconset/icon_base.png deleted file mode 100644 index 35bdabc7db79fcee897089c9a52bba20cf8ba30a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1332 zcmcIje@s(X6h80vw%!76uXM4vxbZN|I3vEfm`4qSjn~^Ws|2{ttJqtvRPAbJ7r^Y{Mp73M>08FFrb_{b=hopk1D)fjy}c`E$toWfj#EDmQ&>Db-hzvI2!bYfsI za6n7=S&$|Hl^DK&Cscy%Xk}mA7tBy<5P%4jNx^O@z<62BPOMw&0qV2#*po2yCIq&Y zs!0ZTJgF^}>`CU{T3GQ6*SWtnTn$xAW?xIn61mJGRyT>!%fGL~I&w~0s}VZT*|U)@ z?U->OjqrTq!D&qbEX%zdd-JQAHDgfnxx3bW$`sq6_G!cC7wQ!^-`EQtjueisve@EH zviFq3yB+T^DZ-C!_s^V-$!Y^a%_2y1W3GS`=UKdYq<}Rb2N=j`WB`JG+>s&k!BHNn z0@sS~YJQ83UR*aigPU6$(PEi1QB0%udPMb$KFrgK&XJG_=pohicD$7RMj{Y?Ja+nB zHNqbq`^vWz0KTyB=ZsSybJe?;bl5vo_vvmNVR_%Vd@%QKi5TRw z-k~p}Od4Ik`PF)=tlxaCO;i2-{qFhG#9vmO@6O)XvtO_56bjVEZ^E51R8G|EV%>4y*MWY&X7t!Z?x5{gXR7x`V4$=m>J&la z>l<-x+7b8>`POL)Z#fnt=MAv(H6lQR$&PY>t4#8Tt0G)9>yy~s>n|9eXUY-COr*jh zxWxTaOAm?h0rfqs)2XYno{68j+Z>+9l#ZQd_k#Ni!u#@}#AV>)m8pF58<7xs4P07| zil*S!O3?lk2@4=?fO!E^%7^K-XSNzp(UTk3?tH^;UVGt{ com.apple.security.app-sandbox + com.apple.security.network.client + + com.apple.security.network.server + + com.apple.security.files.user-selected.read-write + + com.apple.security.files.downloads.read-write + + com.apple.security.process.exec + diff --git a/CxIDE.xcodeproj/project.pbxproj b/CxIDE.xcodeproj/project.pbxproj index d6c6456..467a3a3 100644 --- a/CxIDE.xcodeproj/project.pbxproj +++ b/CxIDE.xcodeproj/project.pbxproj @@ -399,6 +399,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; @@ -437,6 +438,7 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; @@ -468,6 +470,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; @@ -506,6 +509,7 @@ ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = s; @@ -515,6 +519,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + LLVM_LTO = YES; MACOSX_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; @@ -532,6 +537,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = CxIDE.entitlements; CODE_SIGN_STYLE = Automatic; @@ -541,7 +547,9 @@ ENABLE_APP_SANDBOX = NO; ENABLE_FILE_ACCESS_DOWNLOADS_FOLDER = readwrite; ENABLE_HARDENED_RUNTIME = YES; + ENABLE_INCOMING_NETWORK_CONNECTIONS = YES; ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES; + ENABLE_PREVIEWS = YES; ENABLE_USER_SELECTED_FILES = readwrite; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = Info.plist; @@ -564,6 +572,7 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = CxIDE.entitlements; CODE_SIGN_STYLE = Automatic; @@ -573,7 +582,9 @@ ENABLE_APP_SANDBOX = NO; ENABLE_FILE_ACCESS_DOWNLOADS_FOLDER = readwrite; ENABLE_HARDENED_RUNTIME = YES; + ENABLE_INCOMING_NETWORK_CONNECTIONS = YES; ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES; + ENABLE_PREVIEWS = YES; ENABLE_USER_SELECTED_FILES = readwrite; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = Info.plist; diff --git a/CxIDE.xcodeproj/xcshareddata/xcschemes/CxIDE.xcscheme b/CxIDE.xcodeproj/xcshareddata/xcschemes/CxIDE.xcscheme index 412314d..410f7df 100644 --- a/CxIDE.xcodeproj/xcshareddata/xcschemes/CxIDE.xcscheme +++ b/CxIDE.xcodeproj/xcshareddata/xcschemes/CxIDE.xcscheme @@ -41,7 +41,17 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES" - codeCoverageEnabled = "YES"> + codeCoverageEnabled = "YES" + onlyGenerateCoverageForSpecifiedTargets = "YES"> + + + + @@ -83,7 +96,28 @@ value = "1" isEnabled = "YES"> + + + + + + + + + + public.swift-source + + CFBundleTypeName + C Source + CFBundleTypeRole + Editor + LSItemContentTypes + + public.c-source + + CFBundleTypeName C++ Source @@ -60,6 +70,16 @@ public.c-header + + CFBundleTypeName + Objective-C Source + CFBundleTypeRole + Editor + LSItemContentTypes + + public.objective-c-source + + CFBundleTypeName Objective-C++ Source @@ -70,6 +90,66 @@ public.objective-c-plus-plus-source + + CFBundleTypeName + Python Source + CFBundleTypeRole + Editor + LSItemContentTypes + + public.python-script + + + + CFBundleTypeName + Shell Script + CFBundleTypeRole + Editor + LSItemContentTypes + + public.shell-script + + + + CFBundleTypeName + JavaScript Source + CFBundleTypeRole + Editor + LSItemContentTypes + + com.netscape.javascript-source + + + + CFBundleTypeName + TypeScript Source + CFBundleTypeRole + Editor + LSItemContentTypes + + com.microsoft.typescript + + + + CFBundleTypeName + HTML + CFBundleTypeRole + Editor + LSItemContentTypes + + public.html + + + + CFBundleTypeName + CSS + CFBundleTypeRole + Editor + LSItemContentTypes + + public.css + + CFBundleTypeName JSON @@ -80,6 +160,26 @@ public.json + + CFBundleTypeName + YAML + CFBundleTypeRole + Editor + LSItemContentTypes + + public.yaml + + + + CFBundleTypeName + XML + CFBundleTypeRole + Editor + LSItemContentTypes + + public.xml + + CFBundleTypeName Markdown @@ -90,6 +190,26 @@ net.daringfireball.markdown + + CFBundleTypeName + Plain Text + CFBundleTypeRole + Editor + LSItemContentTypes + + public.plain-text + + + + CFBundleTypeName + Property List + CFBundleTypeRole + Editor + LSItemContentTypes + + com.apple.property-list + + CFBundleTypeName Folder