Code Monkey home page Code Monkey logo

easydiff's People

Contributors

deathaxe avatar facelessuser avatar meetar avatar xenofanes9 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

Watchers

 avatar  avatar  avatar  avatar

easydiff's Issues

External tool doesn't show up in the menus

Hey there,

Thanks for creating such an excellent package, it's far easier to use and configure than some of the other options!

I am, however, having a little trouble getting the external tool option to work. I'd like to setup EasyDiff to let me use Kaleidoscope, I've installed the Command-Line Tool and using the following syntax in the Terminal works fine:

kaleidoscope_command-line_tool-2

I think I have things setup correctly in the preferences (/Users/cwhite/Library/Application Support/Sublime Text 3/Packages/User/easy_diff.sublime-settings).

{
    // Show internal diff options (Easy Diff in a view or buffer)
    "show_internal": true,

    // Show external options (options to send files to external diff tool)
    "show_external": true,

    // External diff tool path (absolute)
    "external_diff": "ksdiff",

    // Turn off svn completely
    "svn_disabled": true,

    // Turn off git completely
    "git_disabled": false,

    // Turn off (Mercurial) hg completely
    "hg_disabled": true,
}

But I don't see any option to open the file in an external diff tool anywhere in the context menu.

I've tried...

  1. Setting show_internal to false to make sure they weren't overwriting each other.
  2. Specifying the full path to ksdiff as /usr/bin/ksdiff (the symlink) and /Applications/Kaleidoscope.app/Contents/MacOS/ksdiff (the actual file).

I know the settings file is working correctly because disabling internal or any of the source control options works fine.

System

  • OS X 10.9
  • Sublime Text Stable Channel, Build 3047
  • EasyDiff 2013.11.27.02.56.58

Any ideas?

Thanks!

Idea: Compare last 2 active view

Hi,
I like the way an old plugin works to diff 2 files (using the active view and the last activated view), I've adapted it to works with your plugin.
Maybe you want to add this feature to EasyDiff.

Thanks for your works and for sharing it !

import sublime, sublime_plugin

class CompareFileListener(sublime_plugin.EventListener):
    viewA = viewB = None

    def on_activated(self, view):
        group, index = view.window().get_view_index(view)
        if group != -1:
            if (group, index) != self.viewA:
                CompareFileListener.viewB = CompareFileListener.viewA
                CompareFileListener.viewA = (group, index)

class CompareFileCommand(sublime_plugin.WindowCommand):
    def run(self):
        self.window.run_command("easy_diff_set_left", {"group": CompareFileListener.viewB[0], "index": CompareFileListener.viewB[1]})
        self.window.run_command("easy_diff_compare_both_view", {"external": True})

    def is_enabled(self):
        return bool(CompareFileListener.viewA and CompareFileListener.viewB)
[
    {
        "caption": "Diff: Last 2 active view",
        "command": "compare_file"
    }
]

EasyDiff slows down context menu due to many git, svn and hg process spawns in sequence on Windows

The right click menu in my one Git project takes about ~5 to 15 seconds to open.

I have noticed that this delay disappears entirely when I disable EasyDiff, enabling it brings the phenomenon back.

Procmon shows that plugin_host.exe spawns many git processes in sequence, also some svn and some hg processes.

The timestamps on these processes correspond exactly with when I press rightclick and when the context menu eventually appears. The two time stamps are start and end time of the process, respectively.

In this image (EasyDiff enabled) you that VCS related processes started for about 12 seconds for the context menu, that's with EasyDiff enabled:
image
This is a project with thousands of small files, most of which are ignored through .gitignore

Without EasyDiff, there are no git invocations that coincide with the opening of the context menu:
image
I opened the context menu at 10:44:25 and again at 10:44:30 and stopped recording at 10:44:36. As you cans see, zero processes started during that time by plugin_host.exe

I have also closed sublime and reopened it in an completely new folder and put an empty txt file in it. The folder is near the root of the drive such that no program needs to traverse many parents to look for a VCS root.
This is the result when I right-click within that file
image

The right click menu took several seconds to open. Again, the phenomenon goes away completely when I disable EasyDiff.

Related: #10

Any thoughts on this issue?

Running Windows 10, latest updates, x64

Context menu doesn't show EasyDiff menu items

I've installed the EasyDiff package through the package manager, but the context menus (as I understand them) don't show any EasyDiff options. Perhaps you could clarify what you mean by "context menu"?

I'm using a right-click in Sublime Text 2 2.0.2 build 2221 on 10.9.4. I've restarted both Sublime Text and the OS.

I'm attaching images of what I see when I open the context menu, and the top item when I "List Packages".

Thanks!
contextmenu
packages

Static context menu?

I'd love to add this plug-in but I customise my context menu - with it being added to dynamically by this plugin it is a little too invasive for me to use. Is the dynamic element necessary - could a static context menu be used instead? Thanks,

ED2: Rework how easy diff handles clipboard, selections, and views

I want to simplify easy diff target selections.

  • Have only one set left (no submenus)
  • If a selection or selections exist, set left will use the selections. If no selections are available, the entire file/view will be used.
  • There will be a separate command for diffing clipboard content. It will be simple. If a selection exists, the current clipboard will be diffed with the selection(s), else the clipboard will be diffed with the view.
  • Command palette commands will be refactored accordingly to new methodology
  • Might not need to regen menus on every set left etc. anymore.

Shortcuts for common tasks

Would it be possible to add shortcuts for common operations.
For example, Im using this mainly for comparing the current tab with the previously active, would be nice to have that accessible from a shortcut.

Slow context menu

Context menu opening is really slow when I use this plugin. Running ST3 on windows.

Add screenshots

Please add some screenshots
For me using EasyDiff means upgrading from ST2 to ST3 and seemingly breaking some other plugins, so it is kinda hard to make a decision :)

Look into Side Bar Support

It would be nice to have EasyDiff accessible from sidebar as well.

Will probably need some extra code to handle the files if they are not already open.

This won't install

I'm following instructions here step by step.

It will not show up on any windows context menus or within sublime at the locations you describe.
I am using Windows 10.
[email protected]

When running an external SVN diff, pre-existing temp files lead to runtime error

steps to reproduce:

  1. Open file that is checked into version control in Sublime
  2. Right click on the tab, execute EasyDiff's SVN Diff command
    • Note that file myFileName-rBASE-LEFT.py is create in temp dir
  3. External diff viewer opens as normal
  4. Close external diff viewer
    • Note that file myFileName-rBASE-LEFT.py remains in temp directory
  5. Execute SVN Diff command on same file
  6. runtime error can be seen in log (copied/pasted below)

I think the fix is that EasyDiff needs to delete any pre-existing temp files when the command is executed, prior to calling the actual svn diff command.

Traceback below:

Traceback (most recent call last): File "easy_diff_version_control in <path to my portable sublime>\Data\Installed Packages\EasyDiff.sublime-package", line 161, in is_loaded File "easy_diff_version_control in <path to my portable sublime>\Data\Installed Packages\EasyDiff.sublime-package", line 182, in diff File "easy_diff_version_control in <path to my portable sublime>\Data\Installed Packages\EasyDiff.sublime-package", line 144, in external_diff File "easy_diff_version_control in <path to my portable sublime>\Data\Installed Packages\EasyDiff.sublime-package", line 275, in get_files File "lib.svn in <path to my portable sublime>\Data\Installed Packages\EasyDiff.sublime-package", line 231, in export File "lib.svn in <path to my portable sublime>\Data\Installed Packages\EasyDiff.sublime-package", line 63, in svnopen AssertionError: Runtime Error: b"svn: E200009: Destination file '<path to my local appdata>\\Temp\\easydiff84zli9\\myFileName-rBASE-LEFT.py' exists, and will not be overwritten unless forced"

different diff tool based on OS?

Hi,
I have my user directory synced between different machines. Some are Windows based, some are Linux. Is it possible to tell EasyDiff to use different external viewers based on the OS? I'd like to use Beyond Compare on Windows and Kompare on Linux.

Thanks!

Fails to detect file is part of HG repo

in hg.py, several calls to hgopen() are missing the second argument (dirname(target)), leading to EasyDiff reporting the file is not part of a repository because it uses the default CWD instead of the target directory.

Windows, delay on right click menu for file on remote network

I installed EasyDiff, - using windows, and noticed that for a file on a remote network directory, the right click menu would only come up after several seconds.
The same file locally would give no problem.
I disabled EasyDiff and the the right click menu on the remote file worked again.
The remote network isn't fast and may have peculiar permissions, but the effect was there with the plugin enabled and not with the plugin disable.
Kind Regards, John.

Reduce dependencies

Does it make sense to reduce dependencies to only mdpopups?

{
    "*": {
        ">=3124": [
            "mdpopups"
        ]
    }
}

It appears to come along with everything needed and is itself only needed for support.py.

Easy Diff video

Could anyone create a quick video on the features and how to use Easy Diff?

Compare selections

Would it be possible to compare two selections if two and only two selections are selected.

So if you use cmd to select two parts of the same view, can the menus show a new Compare selections options?

Thanks,
A

Ignore whitespace

Is there a way to ignore whitespace when doing a diff? If I want to compare two blocks of code, but one block is indented further than the other, the diff is useless.

Auto update diff based on file changes

It's really cumbersome to ask for a new diff after one file is updated. it would be great if this plugin watches file changes and update the diff automatically

Installation via ST2::PackageControl

Sorry , if it is a ST2 related issue. Unfortunately, the plugin is not available for installation via ST Package Control on:

- SublimeText 2
- build 2221
- OS X 10.10.3.

Any tips on how to install it ? Thank you.

Handle other encodings

  • Read encodings from Sublime when available (default to UTF-8 if needed)
  • Maybe some basic encoding detection for diff results?

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.