diff --git a/.gitignore b/.gitignore index 10253e5..1e2069f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,102 @@ +# macOS +.DS_Store + +# NPM +node_modules/ + +# Build *.zip build/ dist/ + +# Xcode +# https://github.com/github/gitignore/blob/master/Swift.gitignore +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## User settings +xcuserdata/ + +## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) +*.xcscmblueprint +*.xccheckout + +## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) +build/ +DerivedData/ +*.moved-aside +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 + +## Obj-C/Swift specific +*.hmap + +## App packaging +*.ipa +*.dSYM.zip +*.dSYM + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +# +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +# Packages/ +# Package.pins +# Package.resolved +# *.xcodeproj +# +# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata +# hence it is not needed unless you have added a package configuration file to your project +# .swiftpm + +.build/ + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +# Pods/ +# +# Add this line if you want to avoid checking in source code from the Xcode workspace +# *.xcworkspace + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build/ + +# Accio dependency management +Dependencies/ +.accio/ + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. +# Instead, use fastlane to re-generate the screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output + +# Code Injection +# +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ diff --git a/GitHub Wiki Search/GitHub Wiki Search Extension/GitHub_Wiki_Search_Extension.entitlements b/GitHub Wiki Search/GitHub Wiki Search Extension/GitHub_Wiki_Search_Extension.entitlements new file mode 100644 index 0000000..f2ef3ae --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search Extension/GitHub_Wiki_Search_Extension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/GitHub Wiki Search/GitHub Wiki Search Extension/Info.plist b/GitHub Wiki Search/GitHub Wiki Search Extension/Info.plist new file mode 100644 index 0000000..f8456c0 --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search Extension/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + GitHub Wiki Search Extension + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSExtension + + NSExtensionPointIdentifier + com.apple.Safari.web-extension + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).SafariWebExtensionHandler + + + diff --git a/GitHub Wiki Search/GitHub Wiki Search Extension/SafariWebExtensionHandler.swift b/GitHub Wiki Search/GitHub Wiki Search Extension/SafariWebExtensionHandler.swift new file mode 100644 index 0000000..702ce06 --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search Extension/SafariWebExtensionHandler.swift @@ -0,0 +1,26 @@ +// +// SafariWebExtensionHandler.swift +// GitHub Wiki Search Extension +// +// Created by Tanner Hodges on 11/8/21. +// + +import SafariServices +import os.log + +let SFExtensionMessageKey = "message" + +class SafariWebExtensionHandler: NSObject, NSExtensionRequestHandling { + + func beginRequest(with context: NSExtensionContext) { + let item = context.inputItems[0] as! NSExtensionItem + let message = item.userInfo?[SFExtensionMessageKey] + os_log(.default, "Received message from browser.runtime.sendNativeMessage: %@", message as! CVarArg) + + let response = NSExtensionItem() + response.userInfo = [ SFExtensionMessageKey: [ "Response to": message ] ] + + context.completeRequest(returningItems: [response], completionHandler: nil) + } + +} diff --git a/GitHub Wiki Search/GitHub Wiki Search.xcodeproj/project.pbxproj b/GitHub Wiki Search/GitHub Wiki Search.xcodeproj/project.pbxproj new file mode 100644 index 0000000..bb3ead0 --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search.xcodeproj/project.pbxproj @@ -0,0 +1,530 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + A8C8B4E9273962B800FC9662 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8C8B4E8273962B800FC9662 /* AppDelegate.swift */; }; + A8C8B4EC273962B800FC9662 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A8C8B4EA273962B800FC9662 /* Main.storyboard */; }; + A8C8B4EE273962B800FC9662 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8C8B4ED273962B800FC9662 /* ViewController.swift */; }; + A8C8B4F0273962BA00FC9662 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A8C8B4EF273962BA00FC9662 /* Assets.xcassets */; }; + A8C8B4F7273962BA00FC9662 /* GitHub Wiki Search Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = A8C8B4F6273962BA00FC9662 /* GitHub Wiki Search Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + A8C8B4FC273962BA00FC9662 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A8C8B4FB273962BA00FC9662 /* Cocoa.framework */; }; + A8C8B4FF273962BA00FC9662 /* SafariWebExtensionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8C8B4FE273962BA00FC9662 /* SafariWebExtensionHandler.swift */; }; + A8C8B511273962BB00FC9662 /* icon-16.png in Resources */ = {isa = PBXBuildFile; fileRef = A8C8B50C273962BB00FC9662 /* icon-16.png */; }; + A8C8B512273962BB00FC9662 /* icon-48.png in Resources */ = {isa = PBXBuildFile; fileRef = A8C8B50D273962BB00FC9662 /* icon-48.png */; }; + A8C8B513273962BB00FC9662 /* manifest.json in Resources */ = {isa = PBXBuildFile; fileRef = A8C8B50E273962BB00FC9662 /* manifest.json */; }; + A8C8B514273962BB00FC9662 /* content.js in Resources */ = {isa = PBXBuildFile; fileRef = A8C8B50F273962BB00FC9662 /* content.js */; }; + A8C8B515273962BB00FC9662 /* icon-128.png in Resources */ = {isa = PBXBuildFile; fileRef = A8C8B510273962BB00FC9662 /* icon-128.png */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + A8C8B4F8273962BA00FC9662 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = A8C8B4DC273962B800FC9662 /* Project object */; + proxyType = 1; + remoteGlobalIDString = A8C8B4F5273962BA00FC9662; + remoteInfo = "GitHub Wiki Search Extension"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + A8C8B507273962BA00FC9662 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + A8C8B4F7273962BA00FC9662 /* GitHub Wiki Search Extension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + A8C8B4E4273962B800FC9662 /* GitHub Wiki Search.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "GitHub Wiki Search.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + A8C8B4E7273962B800FC9662 /* GitHub_Wiki_Search.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = GitHub_Wiki_Search.entitlements; sourceTree = ""; }; + A8C8B4E8273962B800FC9662 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + A8C8B4EB273962B800FC9662 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + A8C8B4ED273962B800FC9662 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + A8C8B4EF273962BA00FC9662 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + A8C8B4F1273962BA00FC9662 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A8C8B4F6273962BA00FC9662 /* GitHub Wiki Search Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "GitHub Wiki Search Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + A8C8B4FB273962BA00FC9662 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + A8C8B4FE273962BA00FC9662 /* SafariWebExtensionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariWebExtensionHandler.swift; sourceTree = ""; }; + A8C8B500273962BA00FC9662 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A8C8B501273962BA00FC9662 /* GitHub_Wiki_Search_Extension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = GitHub_Wiki_Search_Extension.entitlements; sourceTree = ""; }; + A8C8B50C273962BB00FC9662 /* icon-16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "icon-16.png"; path = "../../dist/icon-16.png"; sourceTree = ""; }; + A8C8B50D273962BB00FC9662 /* icon-48.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "icon-48.png"; path = "../../dist/icon-48.png"; sourceTree = ""; }; + A8C8B50E273962BB00FC9662 /* manifest.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = manifest.json; path = ../../dist/manifest.json; sourceTree = ""; }; + A8C8B50F273962BB00FC9662 /* content.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; name = content.js; path = ../../dist/content.js; sourceTree = ""; }; + A8C8B510273962BB00FC9662 /* icon-128.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "icon-128.png"; path = "../../dist/icon-128.png"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A8C8B4E1273962B800FC9662 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A8C8B4F3273962BA00FC9662 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A8C8B4FC273962BA00FC9662 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A8C8B4DB273962B800FC9662 = { + isa = PBXGroup; + children = ( + A8C8B4E6273962B800FC9662 /* GitHub Wiki Search */, + A8C8B4FD273962BA00FC9662 /* GitHub Wiki Search Extension */, + A8C8B4FA273962BA00FC9662 /* Frameworks */, + A8C8B4E5273962B800FC9662 /* Products */, + ); + sourceTree = ""; + }; + A8C8B4E5273962B800FC9662 /* Products */ = { + isa = PBXGroup; + children = ( + A8C8B4E4273962B800FC9662 /* GitHub Wiki Search.app */, + A8C8B4F6273962BA00FC9662 /* GitHub Wiki Search Extension.appex */, + ); + name = Products; + sourceTree = ""; + }; + A8C8B4E6273962B800FC9662 /* GitHub Wiki Search */ = { + isa = PBXGroup; + children = ( + A8C8B4E7273962B800FC9662 /* GitHub_Wiki_Search.entitlements */, + A8C8B4E8273962B800FC9662 /* AppDelegate.swift */, + A8C8B4EA273962B800FC9662 /* Main.storyboard */, + A8C8B4ED273962B800FC9662 /* ViewController.swift */, + A8C8B4EF273962BA00FC9662 /* Assets.xcassets */, + A8C8B4F1273962BA00FC9662 /* Info.plist */, + ); + path = "GitHub Wiki Search"; + sourceTree = ""; + }; + A8C8B4FA273962BA00FC9662 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A8C8B4FB273962BA00FC9662 /* Cocoa.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + A8C8B4FD273962BA00FC9662 /* GitHub Wiki Search Extension */ = { + isa = PBXGroup; + children = ( + A8C8B50B273962BB00FC9662 /* Resources */, + A8C8B4FE273962BA00FC9662 /* SafariWebExtensionHandler.swift */, + A8C8B500273962BA00FC9662 /* Info.plist */, + A8C8B501273962BA00FC9662 /* GitHub_Wiki_Search_Extension.entitlements */, + ); + path = "GitHub Wiki Search Extension"; + sourceTree = ""; + }; + A8C8B50B273962BB00FC9662 /* Resources */ = { + isa = PBXGroup; + children = ( + A8C8B50C273962BB00FC9662 /* icon-16.png */, + A8C8B50D273962BB00FC9662 /* icon-48.png */, + A8C8B50E273962BB00FC9662 /* manifest.json */, + A8C8B50F273962BB00FC9662 /* content.js */, + A8C8B510273962BB00FC9662 /* icon-128.png */, + ); + name = Resources; + path = "GitHub Wiki Search Extension"; + sourceTree = SOURCE_ROOT; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A8C8B4E3273962B800FC9662 /* GitHub Wiki Search */ = { + isa = PBXNativeTarget; + buildConfigurationList = A8C8B508273962BA00FC9662 /* Build configuration list for PBXNativeTarget "GitHub Wiki Search" */; + buildPhases = ( + A8C8B4E0273962B800FC9662 /* Sources */, + A8C8B4E1273962B800FC9662 /* Frameworks */, + A8C8B4E2273962B800FC9662 /* Resources */, + A8C8B507273962BA00FC9662 /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + A8C8B4F9273962BA00FC9662 /* PBXTargetDependency */, + ); + name = "GitHub Wiki Search"; + productName = "GitHub Wiki Search"; + productReference = A8C8B4E4273962B800FC9662 /* GitHub Wiki Search.app */; + productType = "com.apple.product-type.application"; + }; + A8C8B4F5273962BA00FC9662 /* GitHub Wiki Search Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = A8C8B504273962BA00FC9662 /* Build configuration list for PBXNativeTarget "GitHub Wiki Search Extension" */; + buildPhases = ( + A8C8B4F2273962BA00FC9662 /* Sources */, + A8C8B4F3273962BA00FC9662 /* Frameworks */, + A8C8B4F4273962BA00FC9662 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "GitHub Wiki Search Extension"; + productName = "GitHub Wiki Search Extension"; + productReference = A8C8B4F6273962BA00FC9662 /* GitHub Wiki Search Extension.appex */; + productType = "com.apple.product-type.app-extension"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A8C8B4DC273962B800FC9662 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1250; + LastUpgradeCheck = 1250; + TargetAttributes = { + A8C8B4E3273962B800FC9662 = { + CreatedOnToolsVersion = 12.5.1; + }; + A8C8B4F5273962BA00FC9662 = { + CreatedOnToolsVersion = 12.5.1; + }; + }; + }; + buildConfigurationList = A8C8B4DF273962B800FC9662 /* Build configuration list for PBXProject "GitHub Wiki Search" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = A8C8B4DB273962B800FC9662; + productRefGroup = A8C8B4E5273962B800FC9662 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A8C8B4E3273962B800FC9662 /* GitHub Wiki Search */, + A8C8B4F5273962BA00FC9662 /* GitHub Wiki Search Extension */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A8C8B4E2273962B800FC9662 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A8C8B4F0273962BA00FC9662 /* Assets.xcassets in Resources */, + A8C8B4EC273962B800FC9662 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A8C8B4F4273962BA00FC9662 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A8C8B514273962BB00FC9662 /* content.js in Resources */, + A8C8B512273962BB00FC9662 /* icon-48.png in Resources */, + A8C8B513273962BB00FC9662 /* manifest.json in Resources */, + A8C8B511273962BB00FC9662 /* icon-16.png in Resources */, + A8C8B515273962BB00FC9662 /* icon-128.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A8C8B4E0273962B800FC9662 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A8C8B4EE273962B800FC9662 /* ViewController.swift in Sources */, + A8C8B4E9273962B800FC9662 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A8C8B4F2273962BA00FC9662 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A8C8B4FF273962BA00FC9662 /* SafariWebExtensionHandler.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + A8C8B4F9273962BA00FC9662 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = A8C8B4F5273962BA00FC9662 /* GitHub Wiki Search Extension */; + targetProxy = A8C8B4F8273962BA00FC9662 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + A8C8B4EA273962B800FC9662 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + A8C8B4EB273962B800FC9662 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + A8C8B502273962BA00FC9662 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.3; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + A8C8B503273962BA00FC9662 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.3; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + A8C8B505273962BA00FC9662 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = "GitHub Wiki Search Extension/GitHub_Wiki_Search_Extension.entitlements"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 6; + DEVELOPMENT_TEAM = CCMGXD25UW; + INFOPLIST_FILE = "GitHub Wiki Search Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.14; + PRODUCT_BUNDLE_IDENTIFIER = "com.tannerhodges.GitHub-Wiki-Search.Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + A8C8B506273962BA00FC9662 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = "GitHub Wiki Search Extension/GitHub_Wiki_Search_Extension.entitlements"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 6; + DEVELOPMENT_TEAM = CCMGXD25UW; + INFOPLIST_FILE = "GitHub Wiki Search Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.14; + PRODUCT_BUNDLE_IDENTIFIER = "com.tannerhodges.GitHub-Wiki-Search.Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + A8C8B509273962BA00FC9662 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = "GitHub Wiki Search/GitHub_Wiki_Search.entitlements"; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 6; + DEVELOPMENT_TEAM = CCMGXD25UW; + INFOPLIST_FILE = "GitHub Wiki Search/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.14; + PRODUCT_BUNDLE_IDENTIFIER = "com.tannerhodges.GitHub-Wiki-Search"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + A8C8B50A273962BA00FC9662 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = "GitHub Wiki Search/GitHub_Wiki_Search.entitlements"; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 6; + DEVELOPMENT_TEAM = CCMGXD25UW; + INFOPLIST_FILE = "GitHub Wiki Search/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.14; + PRODUCT_BUNDLE_IDENTIFIER = "com.tannerhodges.GitHub-Wiki-Search"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A8C8B4DF273962B800FC9662 /* Build configuration list for PBXProject "GitHub Wiki Search" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A8C8B502273962BA00FC9662 /* Debug */, + A8C8B503273962BA00FC9662 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A8C8B504273962BA00FC9662 /* Build configuration list for PBXNativeTarget "GitHub Wiki Search Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A8C8B505273962BA00FC9662 /* Debug */, + A8C8B506273962BA00FC9662 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A8C8B508273962BA00FC9662 /* Build configuration list for PBXNativeTarget "GitHub Wiki Search" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A8C8B509273962BA00FC9662 /* Debug */, + A8C8B50A273962BA00FC9662 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A8C8B4DC273962B800FC9662 /* Project object */; +} diff --git a/GitHub Wiki Search/GitHub Wiki Search.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/GitHub Wiki Search/GitHub Wiki Search.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/GitHub Wiki Search/GitHub Wiki Search.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/GitHub Wiki Search/GitHub Wiki Search.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/GitHub Wiki Search/GitHub Wiki Search/AppDelegate.swift b/GitHub Wiki Search/GitHub Wiki Search/AppDelegate.swift new file mode 100644 index 0000000..37b6438 --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search/AppDelegate.swift @@ -0,0 +1,25 @@ +// +// AppDelegate.swift +// GitHub Wiki Search +// +// Created by Tanner Hodges on 11/8/21. +// + +import Cocoa + +@main +class AppDelegate: NSObject, NSApplicationDelegate { + + func applicationDidFinishLaunching(_ notification: Notification) { + // Insert code here to initialize your application + } + + func applicationWillTerminate(_ notification: Notification) { + // Insert code here to tear down your application + } + + func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } + +} diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AccentColor.colorset/Contents.json b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon-2.appiconset/Contents.json b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon-2.appiconset/Contents.json new file mode 100644 index 0000000..50ab7bd --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon-2.appiconset/Contents.json @@ -0,0 +1,58 @@ +{ + "images" : [ + { + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/Contents.json b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..9b78dcd --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "filename" : "icon-16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "icon-32.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "icon-33.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "icon-64.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "icon-128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "icon-256.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "icon-257.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "icon-512.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "icon-513.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "icon-1024.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-1024.png new file mode 100644 index 0000000..9af5eed Binary files /dev/null and b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-1024.png differ diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-128.png b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-128.png new file mode 100644 index 0000000..dc7943d Binary files /dev/null and b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-128.png differ diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-16.png b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-16.png new file mode 100644 index 0000000..3980621 Binary files /dev/null and b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-16.png differ diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-256.png b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-256.png new file mode 100644 index 0000000..96b9b1c Binary files /dev/null and b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-256.png differ diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-257.png b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-257.png new file mode 100644 index 0000000..96b9b1c Binary files /dev/null and b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-257.png differ diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-32.png b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-32.png new file mode 100644 index 0000000..fd680ad Binary files /dev/null and b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-32.png differ diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-33.png b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-33.png new file mode 100644 index 0000000..fd680ad Binary files /dev/null and b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-33.png differ diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-512.png b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-512.png new file mode 100644 index 0000000..0429e6b Binary files /dev/null and b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-512.png differ diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-513.png b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-513.png new file mode 100644 index 0000000..0429e6b Binary files /dev/null and b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-513.png differ diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-64.png b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-64.png new file mode 100644 index 0000000..f76ad8e Binary files /dev/null and b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/AppIcon.appiconset/icon-64.png differ diff --git a/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/Contents.json b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/GitHub Wiki Search/GitHub Wiki Search/Base.lproj/Main.storyboard b/GitHub Wiki Search/GitHub Wiki Search/Base.lproj/Main.storyboard new file mode 100644 index 0000000..8160a7c --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search/Base.lproj/Main.storyboard @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/GitHub Wiki Search/GitHub Wiki Search/GitHub_Wiki_Search.entitlements b/GitHub Wiki Search/GitHub Wiki Search/GitHub_Wiki_Search.entitlements new file mode 100644 index 0000000..f2ef3ae --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search/GitHub_Wiki_Search.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/GitHub Wiki Search/GitHub Wiki Search/Info.plist b/GitHub Wiki Search/GitHub Wiki Search/Info.plist new file mode 100644 index 0000000..d8d4521 --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSApplicationCategoryType + public.app-category.developer-tools + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + + diff --git a/GitHub Wiki Search/GitHub Wiki Search/ViewController.swift b/GitHub Wiki Search/GitHub Wiki Search/ViewController.swift new file mode 100644 index 0000000..f31106f --- /dev/null +++ b/GitHub Wiki Search/GitHub Wiki Search/ViewController.swift @@ -0,0 +1,51 @@ +// +// ViewController.swift +// GitHub Wiki Search +// +// Created by Tanner Hodges on 11/8/21. +// + +import Cocoa +import SafariServices.SFSafariApplication +import SafariServices.SFSafariExtensionManager + +let appName = "GitHub Wiki Search" +let extensionBundleIdentifier = "com.tannerhodges.GitHub-Wiki-Search.Extension" + +class ViewController: NSViewController { + + @IBOutlet var appNameLabel: NSTextField! + + override func viewDidLoad() { + super.viewDidLoad() + self.appNameLabel.stringValue = appName + SFSafariExtensionManager.getStateOfSafariExtension(withIdentifier: extensionBundleIdentifier) { (state, error) in + guard let state = state, error == nil else { + // Insert code to inform the user that something went wrong. + return + } + + DispatchQueue.main.async { + if (state.isEnabled) { + self.appNameLabel.stringValue = "\(appName)'s extension is currently on." + } else { + self.appNameLabel.stringValue = "\(appName)'s extension is currently off. You can turn it on in Safari Extensions preferences." + } + } + } + } + + @IBAction func openSafariExtensionPreferences(_ sender: AnyObject?) { + SFSafariApplication.showPreferencesForExtension(withIdentifier: extensionBundleIdentifier) { error in + guard error == nil else { + // Insert code to inform the user that something went wrong. + return + } + + DispatchQueue.main.async { + NSApplication.shared.terminate(nil) + } + } + } + +} diff --git a/changelog.md b/changelog.md index 23f2c1d..44fce87 100644 --- a/changelog.md +++ b/changelog.md @@ -7,34 +7,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.0.3] - 2021-11-07 + +### Added + +- πŸ–₯ Add Safari extension. +- πŸ”’ Add Privacy Policy. + ## [1.0.2] - 2021-11-07 ### Fixed -- Fix dark theme styles. -- Fix search box failing to display after PJAX page loads. +- πŸŒ— Fix dark theme styles. +- πŸ“Ÿ Fix search box failing to display after PJAX page loads. ### Changed -- Update npm dependencies. +- πŸ€– Update npm dependencies. ## [1.0.1] - 2020-09-28 ### Added -- Add Firefox extension. +- 🦊 Add Firefox Extension. ### Changed -- Improve regex to fix forms for repos that start with "wiki" (e.g., `/tannerhodges/wiki-plugin/wiki`). +- βš™οΈ Improve regex to fix forms for repos that start with "wiki" (e.g., `/tannerhodges/wiki-plugin/wiki`). ## [1.0.0] - 2020-09-26 ### Added -- First version! +- πŸ†• First version! -[Unreleased]: https://github.com/tannerhodges/github-wiki-search/compare/v1.0.2...HEAD +[Unreleased]: https://github.com/tannerhodges/github-wiki-search/compare/v1.0.3...HEAD +[1.0.3]: https://github.com/tannerhodges/github-wiki-search/compare/v1.0.2...v1.0.3 [1.0.2]: https://github.com/tannerhodges/github-wiki-search/compare/v1.0.1...v1.0.2 [1.0.1]: https://github.com/tannerhodges/github-wiki-search/compare/v1.0.0...v1.0.1 [1.0.0]: https://github.com/tannerhodges/github-wiki-search/releases/tag/v1.0.0 diff --git a/package-lock.json b/package-lock.json index eb6736d..3fa7b35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "github-wiki-search", - "version": "1.0.2", + "version": "1.0.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "github-wiki-search", - "version": "1.0.2", + "version": "1.0.3", "license": "MIT", "dependencies": { "eslint": "^7.32.0", diff --git a/package.json b/package.json index ee9d204..c6548c6 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,11 @@ { "name": "github-wiki-search", - "version": "1.0.2", - "description": "Chrome extension for adding a simple search box to GitHub wikis.", + "version": "1.0.3", + "description": "Browser extension for adding a simple search box to GitHub wikis.", "keywords": [ "chrome", + "firefox", + "safari", "extension", "github", "wiki", diff --git a/readme.md b/readme.md index bdd1978..19ceee9 100644 --- a/readme.md +++ b/readme.md @@ -1,11 +1,13 @@ # πŸ” GitHub Wiki Search -Chrome extension for adding a simple search box to GitHub wikis. +Browser extension for adding a simple search box to GitHub wikis. πŸ‘‰ [Download Chrome Extension](https://chrome.google.com/webstore/detail/github-wiki-search/neadealkfeligebmmolcibhbcdfplhhg). πŸ‘‰ [Download Firefox Extension](https://addons.mozilla.org/addon/github-wiki-search/). +πŸ‘‰ [Download Safari Extension](https://apps.apple.com/us/app/github-wiki-search/id1594190145). + ![](./screenshots/example.png) ## ⭐️ Features