GithubHelp home page GithubHelp logo

leonatan / lnpropertylisteditor Goto Github PK

View Code? Open in Web Editor NEW
95.0 12.0 16.0 3.74 MB

A property list editor for AppKit, similar to the editor in Xcode.

License: MIT License

Objective-C 91.07% Objective-C++ 2.17% Swift 1.05% Shell 1.49% Ruby 4.22%
macos property-lists plist editor swift objective-c

lnpropertylisteditor's Introduction

Hi there! 👋 My name is Léo and I am a software engineer from Ramat Gan, Israel

LeoNatan's github stats

lnpropertylisteditor's People

Contributors

leonatan 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

Watchers

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

lnpropertylisteditor's Issues

Undo/Redo bug

If I add, remove, copy and paste an object in an expanded item and then collapse, that object will be added or removed in a wrong location.

Exception after key update!

if update a key inside nested dictionaries or arrays and then collapse, on undo / redo function the app crashes.

I'm unable to intregrate on prefPane

Hi Leo, great job!.
I'm trying to integrate plist editor on prefPane to manage launchctl based on Postgres-prefPane. As I would like to manage nginx, mariadb, postgres, ... I'd like to replace current edit view by your editor and check changes later (it's like Launchrocket ). Drag&Drop project and include framework fails on compile.
May you help?

Programmatically Expand/Collapse All Items in Plist

First of all, this is a great library! Nice work!

My only issue is that I'm not seeing a way to automatically expand all the arrays/dictionaries in a LNPropertyListEditor object. Some of the plists I show in my app have a great deal of nesting, and manually expanding each group is quite time consuming.

Any ideas?

Search functionality

Hi Leo

This is an amazing library i am using it in my current project.
I have a question, can you suggest a way to add a search functionality ?

Crash/Exception when attempting to copy and paste an array/dictionary node

Hey Leo, great job on this library!

I am creating this issue to document some bugs we've discovered and fixed. We've been living with them for a few weeks now and so I feel comfortable contributing back to this project. An accompanying PR is forthcoming.

ℹ️ Note that resolving the issues below revealed a few other issues. I'll include details about those in the PR.

When copying a plist node, some NSKeyedUnarchiver fault logs are emitted.

Steps to reproduce:

  1. Select a plist node and copy it via ⌘C

Observe:

***** -[NSKeyedUnarchiver validateAllowedClass:forKey:] allowed unarchiving safe plist type ''NSString' (0x1e1780918) [/System/Library/Frameworks/Foundation.framework]' for key 'key', even though it was not explicitly included in the client allowed classes set: '{(
"'LNPropertyListNode' (0x104650df0) [~/Library/Developer/Xcode/DerivedData/LNPropertyListEditorExample-eoszcjiazyaglicebgfeoshkripr/Build/Products/Debug/LNPropertyListEditor.framework]"
)}'. This will be disallowed in the future.**

When copying an array/dictionary node, an exception/crash occurs.

Steps to reproduce:

  1. Select the testDict or test array node
  2. Copy via ⌘C, then paste via ⌘V

Observe:

An exception occurs: ***** -[__NSArrayM insertObject:atIndex:]: object cannot be nil**. For me the app doesn’t crash, but the state of the editor is inconsistent. For example, attempting to sort by the key column results in a blank editor. 🙃 On my colleagues machine, it would crash.

standalone build?

This looks great!
I was wondering if there was any way to build it as a standalone app?

Autosave Expanded Item in PropertyList Editor

I can't figure out how to expand an item if a node have the same key name.

I can expand the first node "item1->object", but not the second "item2->object" if the first is already expanded.

This is my working code:

-(id)outlineView:(NSOutlineView *)outlineView itemForPersistentObject:(id)object {
    LNPropertyListNode *node = [NSKeyedUnarchiver unarchiveObjectWithData:object];
    return [self itemForNode:node inNodes:[self.rootPropertyListNode children]];
}

-(id)outlineView:(NSOutlineView *)outlineView persistentObjectForItem:(id)item {
    return (LNPropertyListNode*)[NSKeyedArchiver archivedDataWithRootObject:item];
}

-(id)itemForNode:(LNPropertyListNode*)object inNodes:(NSArray*)nodes {
    for (LNPropertyListNode *node in nodes) {
        if ([node.key isEqualToString: object.key]) {
            return node;
        }

        LNPropertyListNode *item = [self itemForNode:object inNodes:node.children];
        if ([item.key isEqualToString:object.key] ) {
            return item;
        }
    }
    return nil;
}

Can you help me? Thanks in advance.

Carthage: No tagged versions found for github "LeoNatan/LNPropertyListEditor"

Adding github "LeoNatan/LNPropertyListEditor" to my Cartfile as per the README, followed by running carthage update gives an error – No tagged versions found for github "LeoNatan/LNPropertyListEditor".

It might be worth either tagging a version of this repo, or noting in the README that adding github "LeoNatan/LNPropertyListEditor" "master" to a Cartfile can be used to work around this error and use the latest master.

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.