Git Product home page Git Product logo

linkedconsole's Introduction

Hi there 👋

I am Principal engineer and creator of apps and tools that are trusted by over 80,000 teams—including industry leaders Apple, Disney, and Airbnb.

I've just released a video course that you can join if you want to save lots of time creating apps for Apple platforms.

🚀 I'm available for consulting and speaking engagements. Feel free to reach out to me to discuss opportunities.

In the past, I led iOS development at The New York Times, worked on apps such as Headspace, The Browser Company, and created my own indie apps like Foldify.

Community Work

You can sponsor my work and get premium content on my blog.

My Expertise

I focus on creating maintainable architecture and improving developer experience and efficiency by:

  • 🤔 Designing flexible architecture that is easy to maintain
  • ⚙️ Creating automation for common code tasks and workflows
  • 👥 Establishing best practices for architecture, testing, and workflows
  • 📋 As a consultant, I usually:
    • 🤔 Perform code reviews for entire projects and provide clients with practical recommendations to improve their team efficiency and satisfaction (through better development experience and automation)
    • 👥 Help establish best practices and provide architecture recommendations
    • 🛠️ Design and implement flexible and pragmatic solutions for hard problems
  • 🧙 And much more...

Talking with Me

  • 🐦 My Twitter: @merowing_
  • 💬 Pronouns: He/Him

You can learn more about me and my past experience on my blog.

linkedconsole's People

Contributors

0xced avatar delba avatar ewanmellor avatar florianbuerger avatar frankdilo avatar jelle-elaut avatar kenji21 avatar konradzdunczyk avatar krzysztofzablocki avatar maciejpiotrowski89 avatar navisingh avatar readmecritic avatar samsonjs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

linkedconsole's Issues

Links opening to wrong file

I have a few projects managed through carthage, one of which has an AppDelegate, and a ViewController in it. When I click on a link to a log that I have placed in my project AppDelegate, it will link to and open the other AppDelegate file. Is this something that can be mitigated?

Sometimes it will open the correct file in a tab, but it always will open the duplicate file in another window

Xcode 8 Extensions

This plugin is not possible today with Xcode 8.

I spoke to an Xcode engineer during wwdc and he recommended opening Radar for new features for the extension points. Everybody should fill one! :)

Xcode crash when moving a tab to a separate window

Hi,

thanks for a great tool!

I regularly get Xcode crashes when using KZLinkedConsole and moving a tabbed window into separate window. An example crash log:

Process:               Xcode [92786]
Path:                  /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:            com.apple.dt.Xcode
Version:               7.3.1 (10188.1)
Build Info:            IDEFrameworks-10188001000000000~3
App Item ID:           497799835
App External ID:       817226719
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Xcode [92786]
User ID:               502

Date/Time:             2016-08-21 09:57:40.429 +0200
OS Version:            Mac OS X 10.11.6 (15G31)
Report Version:        11
Anonymous UUID:        F4FF8526-BA28-DDF9-961D-8484024C8417

Sleep/Wake UUID:       FEBC7C7E-A7EB-4F24-958E-BB78E20AEDB3

Time Awake Since Boot: 46000 seconds
Time Since Wake:       2100 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
ProductBuildVersion: 7D1014
UNCAUGHT EXCEPTION (NSRangeException): NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds
UserInfo: (null)
Hints: None
Backtrace:
  0   __exceptionPreprocess (in CoreFoundation)
  1   DVTFailureHintExceptionPreprocessor (in DVTFoundation)
  2   objc_exception_throw (in libobjc.A.dylib)
  3   +[NSException raise:format:] (in CoreFoundation)
  4   -[NSRLEArray objectAtIndex:effectiveRange:] (in Foundation)
  5   -[NSMutableAttributedString addAttributes:range:] (in Foundation)
  6   -[DVTTextStorage addAttributes:range:] (in DVTKit)
  7   _TTSf4g_n___TFC15KZLinkedConsole14KZLinkInjectorP33_071CB34855B3BCA24A9667F3084B0B6521addLinksToTextStoragefGSaT8fileNameSS4lineSS5rangeVSC8_NSRange__T_ at /Users/Daniel/Library/Application Support/Alcatraz/Plug-ins/KZLinkedConsole/KZLinkedConsole/Extensions/NSTextStorage+Extensions.swift:0 (in KZLinkedConsole)
  8   _TFFC15KZLinkedConsole14KZLinkInjectorP33_071CB34855B3BCA24A9667F3084B0B6528handlePendingLinksAfterDelayFSiT_U_FT_T_ at /Users/Daniel/Library/Application Support/Alcatraz/Plug-ins/KZLinkedConsole/KZLinkedConsole/Extensions/NSTextStorage+Extensions.swift:0 (in KZLinkedConsole)
  9   _dispatch_call_block_and_release (in libdispatch.dylib)
 10   _dispatch_client_callout (in libdispatch.dylib)
 11   _dispatch_after_timer_callback (in libdispatch.dylib)
 12   _dispatch_client_callout (in libdispatch.dylib)
 13   _dispatch_source_latch_and_call (in libdispatch.dylib)
 14   _dispatch_source_invoke (in libdispatch.dylib)
 15   _dispatch_main_queue_callback_4CF (in libdispatch.dylib)
 16   __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ (in CoreFoundation)
 17   __CFRunLoopRun (in CoreFoundation)
 18   CFRunLoopRunSpecific (in CoreFoundation)
 19   RunCurrentEventLoopInMode (in HIToolbox)
 20   ReceiveNextEventCommon (in HIToolbox)
 21   _BlockUntilNextEventMatchingListInModeWithFilter (in HIToolbox)
 22   _DPSNextEvent (in AppKit)
 23   -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] (in AppKit)
 24   -[DVTApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in DVTKit)
 25   -[NSApplication run] (in AppKit)
 26   NSApplicationMain (in AppKit)
 27  0x0000000107d0939b (in Xcode)
 28   start (in libdyld.dylib)

Let me know if you can spot the issue before I dive in.

cheers,

Daniel

这个插件它不支持xcode10

我在xcode10上面运行时,报错如下:

Value for SWIFT_VERSION cannot be empty. (in target 'KZLinkedConsole')

我在BuildSetting里选择了swift3,4,4.2,unspecified这四个都不行 (我只有这三个选项);

Plugin is not working

I installed the plugin using Alcatraz and building the project, none is working. Restarted Xcode and ensured the plugin was removed before installing it again.

I'm using QorumLogs and set QorumLogs.KZLinkedConsoleSupportEnabled = true in AppDelegate, the logs work fine but nothing is clickable. The plugin is listed as installed.

The log lines look like this
ListItemProviderImpl.swift:260 add(:list:note:order::): blablabla

But I also did a test without QorumLogs using the function in the readme

func logMessage(message: String, filename: String = __FILE__, line: Int = __LINE__, function: String = __FUNCTION__) {
    print("\((filename as NSString).lastPathComponent):\(line) \(function):\r\(message)")
}
logMessage("blablablbla!!!")

And I see:

AppDelegate.swift:68 configLog():
blablablbla!!!

which is also not clickable.

What can be the problem? I'm using Xcode 7.0

Thanks

Automatic Background Color

Hi, can you auto-detect the Xcode background color and if it is dark then maybe use a bright font color and if it bright then use blue font?

Or maybe even much simpler:
Can you use the currently used console font but just make the link underlined? I think that should be enough to make the link stand out and visible. Because if you add a background color and text color then it really looks messy for users with custom themes.

For example, here is my Xcode console:

colorscreen

Not work with CocoaLumberjack

I rewrite one formatter to make the specific format the plugin need with CocoaLumberjack , but not work. my xCode is 6.4 and 7.1.1 with xCodeColor plugin.
Log Detail:
2015-12-09 16:28:28:963 [WARN] | AppDelegate.m:90: [application:didFinishLaunchingWithOptions:]: Testing!!!!!!!!!!!!

Stopped working

It stopped working a couple of time ago and I don't know why. In Alcatraz, it shows up as installed, I never clicked "don't allow" on the Xcode's new plugin detected alert. How can I debug it?

Sometimes opens links in a separate window

Somehow clicking a link in console started to open the corresponding file in a separate window not in the current editor window. I found that it's due to similar file existing in the source directory. Sometime ago I had BitTorrent Sync (https://getsync.com/) installed, and enabled syncing the source directory. It turns out that clicking the links revealed the files from (hidden) .sync subdirectory that contained copies of the source files. Removing that directory resolved the problem.

Sometimes hangs in LLDB

When debugging my app and printing a large dictionary in LLDB, Xcode hangs with KZLinkedConsole in the backtrace:

886 Thread_10058798   DispatchQueue_1: com.apple.main-thread  (serial)
+ 886 start  (in libdyld.dylib) + 1  [0x7fff852545ad]
+   886 NSApplicationMain  (in AppKit) + 1176  [0x7fff87f73520]
+     886 -[NSApplication run]  (in AppKit) + 682  [0x7fff87ff0fc8]
+       886 -[DVTApplication nextEventMatchingMask:untilDate:inMode:dequeue:]  (in DVTKit) + 247  [0x10b1720c2]
+         886 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:]  (in AppKit) + 454  [0x7fff883c7943]
+           886 _DPSNextEvent  (in AppKit) + 1067  [0x7fff87ffb0ee]
+             886 _BlockUntilNextEventMatchingListInModeWithFilter  (in HIToolbox) + 71  [0x7fff942055af]
+               886 ReceiveNextEventCommon  (in HIToolbox) + 432  [0x7fff9420576f]
+                 886 RunCurrentEventLoopInMode  (in HIToolbox) + 235  [0x7fff94205935]
+                   886 CFRunLoopRunSpecific  (in CoreFoundation) + 296  [0x7fff9621a338]
+                     886 __CFRunLoopRun  (in CoreFoundation) + 1841  [0x7fff9621acd1]
+                       886 __CFRunLoopDoTimers  (in CoreFoundation) + 298  [0x7fff962dde6a]
+                         886 __CFRunLoopDoTimer  (in CoreFoundation) + 1075  [0x7fff9625f853]
+                           886 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__  (in CoreFoundation) + 20  [0x7fff9625fbc4]
+                             886 __NSFireDelayedPerform  (in Foundation) + 377  [0x7fff8d66a345]
+                               886 -[IDEConsoleTextView _appendConsoleItemsWaitingToBeAppended]  (in IDEKit) + 120  [0x10be37045]
+                                 886 -[IDEConsoleTextView appendConsoleItemsImmediatelyWithoutScrolling:]  (in IDEKit) + 1004  [0x10c03e8bd]
+                                   886 -[DVTTextStorage endEditing]  (in DVTKit) + 652  [0x10b0630d6]
+                                     886 -[NSTextStorage endEditing]  (in UIFoundation) + 111  [0x7fff90f6b4af]
+                                       886 -[DVTTextStorage processEditing]  (in DVTKit) + 82  [0x10b063414]
+                                         886 -[NSTextStorage processEditing]  (in UIFoundation) + 190  [0x7fff90f6b7da]
+                                           886 -[DVTTextStorage invalidateAttributesInRange:]  (in DVTKit) + 211  [0x10b1a1b3c]
+                                             886 -[DVTTextStorage fixAttributesInRange:]  (in DVTKit) + 719  [0x10b082a1f]
+                                               886 _TToFE15KZLinkedConsoleCSo13NSTextStorage23kz_fixAttributesInRangefS0_FVSC8_NSRangeT_  (in KZLinkedConsole) + 80  [0x1182b8ee0]  NSTextStorage+Extensions.swift:0
+                                                 886 _TFE15KZLinkedConsoleCSo13NSTextStorageP33_071CB34855B3BCA24A9667F3084B0B6519injectLinksIntoLogsfS0_FT_T_  (in KZLinkedConsole) + 357  [0x1182b8205]  NSTextStorage+Extensions.swift:42
+                                                   886 -[NSRegularExpression(NSMatching) matchesInString:options:range:]  (in Foundation) + 159  [0x7fff8d64c4fb]
+                                                     886 -[NSRegularExpression(NSMatching) enumerateMatchesInString:options:range:usingBlock:]  (in Foundation) + 1251  [0x7fff8d64c9f0]
+                                                       886 uregex_findNext  (in libicucore.A.dylib) + 45  [0x7fff8df82459]
+                                                         886 icu::RegexMatcher::find(UErrorCode&)  (in libicucore.A.dylib) + 1419  [0x7fff8e0d3b01]
+                                                           886 icu::RegexMatcher::MatchAt(long long, signed char, UErrorCode&)  (in libicucore.A.dylib) + 12669,12665,...  [0x7fff8df85621,0x7fff8df8561d,...]

The issue is reproducible here and instantly goes away when removing the KZLinkedConsole plugin.

Objective c compatibility

This plugin works perfect in swift project, however it is not working with Objective-C. I have also tried to create a swift file in Objective-C project and added the method "logMessage" given in your sample code but the hyperlink in the log did not create.

Please let me know if this plugin can be integrated with objective-c project as it is very useful plugin and must be available for objective-c projects

Thanks in advanced.

Multi-Window Support

Hi, first off, thanks for the development of this great plugin.

Since I have a wide-screen monitor, I'm using two windows side-by-side. One where the log is full height, one where the actual code is full-height. With KZLinkedConsole now I have the problem that it only works when the code is in the same window as the log. Is it possible to change this to affect another window?

Can not work with SwiftyBeaver

when function no arguments like this:
ChatListViewController.userStatusChanged:212
BaseDataTask.deinit:229

our plugin can not work good.

CocoaLumberjack setup

Hello,
I'm trying to setup KZLinkedConsole with CocoaLumberjack 2.2 using your formatter at KZBootstrap/Logging in an Obj-c project.

Here is my code :
[DDLog addLogger:[DDTTYLogger sharedInstance] withLevel:globalLogLevel]; [DDLog addLogger:[DDASLLogger sharedInstance] withLevel:globalLogLevel]; [DDTTYLogger sharedInstance].logFormatter = [[KZBootstrapLogFormatter alloc] init]; [[DDTTYLogger sharedInstance] setColorsEnabled:YES];

I had some compilation errors in KZBootstrapLogFormatter.h L87 formatLogMessage:

So I changed

NSString *formattedMsg = [NSString stringWithFormat:@"%04ld-%02ld-%02ld %02ld:%02ld:%02ld:%03d [%s] %s:%d (%s): %@", (long)components.year, (long)components.month, (long)components.day, (long)components.hour, (long)components.minute, (long)components.second, milliseconds, CRLLogFlagToCString(logMessage->logFlag), CRLPointerToLastPathComponent(logMessage->file), logMessage->lineNumber, logMessage->function ?: "", logMessage->logMsg];

to

NSString *formattedMsg = [NSString stringWithFormat:@"%04ld-%02ld-%02ld %02ld:%02ld:%02ld:%03d [%s] %s:%d (%s): %@", (long)components.year, (long)components.month, (long)components.day, (long)components.hour, (long)components.minute, (long)components.second, milliseconds, CRLLogFlagToCString(logMessage->_file), logMessage->_file, logMessage->_line, logMessage->_function ?: @"", logMessage->_message];

but all what I get in console is :
2016-04-13 10:48:48:359 [DBG] »B���:376 (»B���): my_log_message

any suggestions ?

Thank you !

Not working for some lines with SwiftyBeaver

Hi,
thanks for the Plugin, it is super-useful.

There is an issue I have encountered using it with SwiftyBeaver. Some lines fail to link to the actual files.

screen shot 2016-01-03 at 13 02 07

It seems to be limited to methods having at least one parameters.

Swift 3 compatibility

Hey, I'd love to see this lib available in Swift 3 so I can implement it in my project.

Thanks 😄

Not working if using lastPathComponent

Works :

#define OKLog(s,...) NSLog( @"%s:%d: %p %@/%@\n%@", __FILE__, __LINE__, self, NSStringFromClass([self class]), NSStringFromSelector(_cmd), [NSString stringWithFormat:(s), ##__VA_ARGS__] )

outputs :

2015-12-09 12:58:58.686 App[67338:2289954] /Users/kenji/source-cache/app/Classes/AppDelegate.m:73: 0x7fba8c8f3210 AppDelegate/application:didFailToRegisterForRemoteNotificationsWithError:

Don't work :

#define OKLog(s,...) NSLog( @"%@:%d: %p %@/%@\n%@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, self, NSStringFromClass([self class]), NSStringFromSelector(_cmd), [NSString stringWithFormat:(s), ##__VA_ARGS__] )
2015-12-09 12:57:49.728 CFFlux[66697:2287745] AppDelegate.m:73: 0x7fd418732120 AppDelegate/application:didFailToRegisterForRemoteNotificationsWithError:

The only difference between first and second OKLog define is for the first parameter which changed from
__FILE__ to [[NSString stringWithUTF8String:__FILE__] lastPathComponent]

The issue is that I don't want to have the full file path in the output. But it may be difficult to find corresponding file in the project.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.