Giter Site home page Giter Site logo

coises / columnsplusplus Goto Github PK

View Code? Open in Web Editor NEW
13.0 13.0 1.0 1.84 MB

Columns++ is a plugin for Notepad++ offering various features for working with text and data arranged in columns.

License: GNU General Public License v3.0

HTML 2.64% C++ 95.97% C 1.32% PowerShell 0.02% Batchfile 0.05%

columnsplusplus's People

Contributors

coises avatar

Stargazers

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

Watchers

 avatar  avatar

Forkers

chcg

columnsplusplus's Issues

Scintilla error; status code 1

Not sure if it's just on my end, But I get an error code "An exception occured due to plugin: CollumnPlusPlus.dll" "Exception reason: Scintilla error; status code1"... with version 1.0.5/1.0.6

Search crashes with zero length multi-edit carets

n++ v8.5.8 Columns++ v0.7.4

If a vertical rectangle of zero width is selected, Search prompts to extend
the rectangle and the Search works.

If several multi-edit carets are set with zero length selections,
no extend prompt occurs and Search stops responding.

If the multi-edit selections are extended manually before Search,
the Search succeeds.

'Phone home'

Why does Columnsplusplus make NPP communicate online when installed?

Thanks.

Display anomalies when editing wrapped lines containing elastic tabstops

This problem was first reported in this Notepad++ community post.

When word wrap is enabled in Notepad++, Elastic tabstops is enabled in Columns++, and a line containing elastic tabstops is edited, display anomalies occur if the number of screen lines required to wrap the line changes between the state after changing the text and the state after recalculating tabstops. This happens because Scintilla caches the layout based on the style and content of the line, but does not take the change in custom tab positions into account.

Quick installer (v1.0.1) is detected as a threat by Windows Defender

Downloading the quick installer for version 1.0.1 ("ColumnsPlusPlus-1.0.1.exe") is recognized as a threat by Windows Defender. While I don't necessarily believe that a virus is being distributed with malicious intent, this still at least prevents the the plugin from being installed. See attached the details given by Windows Defender:
Screenshot 2023-12-19 111948

Cursor moves to unexpected positions on vertical movement after entering elastic tabstops

The cursor sometimes jumps ahead one or more characters when moving vertically after pressing tab.

elastic tabs cursor bug

The cursor seems to move based on the visual position it would have if regular tabs were used, which makes me think this is just the native behavior of Notepad++, and it may be difficult to correct in the plugin. But on the other hand, it does move correctly from a preexisting elastic tabstop. It seems to be only when tab is followed immediately by up arrow or down arrow that this movement occurs.

Here is a spliced animation of the expected behavior:
elastic tabs cursor expected behavior

Perhaps the Col number disagreeing with the visual location of the cursor is related? Since the Col number depends on tab size setting, I'd hope it could also depend on the elastic tabstops setting.

And thank you for making this amazing plugin! I've been wanting something like elastic tabstops for years and I just found the term today.

Unclear when commands do nothing

https://community.notepad-plus-plus.org/post/85604

At first I clicked Sort ascending (numeric) assuming that it would base the column on the current cursor position, but nothing happened. After a while I figured out that you first have to column-select part of the data file, and then select the “Sort ascending” option from the plugin menu. Maybe add a popup warning message when the user clicks a menu item but no column-selection was made.

Minimum space between elastic columns not always honored (also odd cursor positioning)

Starting with this file, using a monospaced font with Elastic tabs profile General enabled:

@echo off
findstr /b "o" one.obj | find /c /v ""
findstr /b "o" two.obj | find /c /v ""
findstr /b "o" three.obj | find /c /v ""
findstr /b "o" four.obj | find /c /v ""

deleting the space before the word “find” in the second line, then adding a tab, then pressing down arrow puts the cursor in the wrong position. Moving the cursor back to the space between the vertical bar and the following blank in the third line, then deleting the space causes the first tab to shrink to a single space, ignoring the “Minimum space between elastic columns” setting.

The minimum space problem appears to happen only when monospaced font optimization is in effect.

Using v1.0.3; to be verified that this is not a regression from v1.0.2.

Edit: This happens in v1.0.2 as well. The minimum space problem appears to happen only when monospaced font optimization is active; the wrong position after the first tab is entered happens in both in the specific example given above, but it is unclear exactly what circumstances trigger it in v1.0.3 (which contains a fix for this that works in most, but not all, cases).

Using the Notepad++ find/replace form turns on Elastic Tabstops

AFAICT, when Columns++ 1.1 is installed, this issue occurs on Notepad++ 8.6.4 but not Notepad++ 8.6.6. I haven't tested to see what other versions cause this issue to surface.

EDIT: As noted below, this issue is still present for Notepad++ 8.6.6, even though the example in this original post doesn't exhibit it.

To replicate:

  1. Open the following file:
foo
bar
baz
  1. Turn on Show All Characters to make it easier to determine whether Elastic Tabstops is on.
  2. Turn off Elastic Tabstops, if it was previously on. Verify that it is off by checking that the CR and LF are full-sized.
  3. Use the Notepad++ find/replace form to replace foo with foo.
  4. Observe that the CR and LF appear squished, indicating that Elastic Tabstops is on.
  5. Go to the Columns++ plugin menu and observe that there is no checkmark next to the Elastic Tabstops item even though it is turned on. Clicking this item twice will fix this issue.

Select All followed by Replace All sometimes causes infinite loop

As shown below, this is on Columns++ v1 (not your newer v1.0.1).

To replicate:

  1. Create a file with the text
foo
  bar
   baz blood
 dog godly
     dude   due
  1. Search for \b\w{3}\b (with Search...) to select all (the option under the Count button) the three-char words.
  2. Click anywhere in the document (I think it has to be somewhere in the middle, not at the beginning or end) so the text of interest is marked but not selected.
  3. Find/replace (still with the Search... GUI) d with xy to attempt to convert all the d chars in the selected text only into xy. Sometimes (again, I haven't had the time to diagnose exactly what causes it), this will cause an infinite loop and I will need to hard-shutdown NPP.

In any case, the desired result of this process is the following:

foo
  bar
   baz blood
 xyog godly
     dude   xyue

Here's my debug info (I also have JsonTools, but I disabled it to test if it was involved in this, and it wasn't)

Notepad++ v8.5.8   (64-bit)
Build time : Oct 15 2023 - 21:43:56
Path : C:\Program Files\Notepad++\notepad++.exe
Command Line : 
Admin mode : OFF
Local Conf mode : OFF
Cloud Config : OFF
OS Name : Windows 10 Home (64-bit)
OS Version : 22H2
OS Build : 19045.3803
Current ANSI codepage : 1252
Plugins : 
    ColumnsPlusPlus (1)
    ComparePlus (1.1)
    CSVLint (0.4.6.5)
    EnhanceAnyLexer (1.1.3)
    HexEditor (0.9.12)
    HTMLTag (1.4.1)
    HugeFiles (0.4.1)
    mimeTools (2.9)
    NavigateTo (2.6.5.1)
    NppConverter (4.5)
    NppExport (0.4)
    NppLspClient (0.0.13)
    PythonScript (3.0.16)
    QuickText (0.2.5.1)
    XMLTools (3.1.1.13)

Background Errors from Columns++

I have Columns++ running in the background. Occasionally, I receive error messages like these when replacing values in N++. Do these help with troubleshooting?
Screenshot1

Screenshot2

Columns++ does not add to search bar in secondary instances

Really happy with some of the features of this plugin so far, and interested to see what I can do with it.

I think it's cool that I can add Columns++ to the main search bar. Definitely simplifies use of the plugin. But when I create a new instance, Columns++ is not on the search bar.

AFAIK that's the only bug with multi-instance/multi-view.

image

elastic tabstops are not applied after npp start

Even if Elastic tabstops are enabled, they are not applied if a fresh instance of Npp is started. They are only applied after disabling and re-enabling it. It also does not work if "Automatically enable this profile when opening *.tsv files." is enabled in the profile settings and a I open a tsv file smaller than 1 MB with 264 lines (see screenshot).

image

Purpose and use unclear

https://community.notepad-plus-plus.org/post/85604

Sounds like an interesting plug-in, but tbh it’s unclear to me how to use it. I assume it only works with tab-separated or fixed width files, so not comma or semicolon separated data?
[...]
It looks promising, but I think the github main page should make clear which type of data files are supported and maybe add a screenshot explaining some of the functions.

Undo issue after Replace

Undo is jumping back twice after changes via Search window. The animation describes it best. I think you put the SCI_BEGINUNDOACTION right before opening the Search Window but not directly before the Replace Actions:
Undo_Issue

Missing dll when trying to run Columns++ 0.7.1-alpha

When I upgrade Columns++ from 0.7 to 0.71-alpha, under n++ 8.5.7 Windows 7, I get the message

The program can't start because api-ms-win-core-realtime-l1-1-1.dll is missing from your computer. Try reinstalling the program to fix this problem.

Googling Microsoft suggests that this dll was new to Windows 10. I see that the change lines for Column++ include the use of
QueryInterruptTime
which is listed by Microsoft as included in that dll. But I also see some coders referencing use of QueryInterruptTime under Windows 7.

I know n++ isn't formally supporting Windows 7, but is Columns++ moving away from it now? If I have to freeze, I am already very happy with Columns++, but I suspect you have more great code in mind :)

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.