Commit Graph

58 Commits

Author SHA1 Message Date
Harrison (Harry) Cramer
341d56a1cb Release: Bug Fixes and Improvements (#399)
fix: Error messages and run all tests (#381)
feat: Automatically open fold under cursor (#380)
fix: Discussion ID is not required (#383)
chore: Add more emojis (#384)
fix: Publish all drafts (#391)
fix: Make discussion tree buffers no-modifiable (#394)
fix: Incorrect warning about commits (#395)
fix: Show draft replies in the correct tree (#396)
fix: Cannot choose merge requests (#398)

---------

Co-authored-by: George Kontridze <george.kontridze@gmail.com>
Co-authored-by: Jakub F. Bortlík <jakub.bortlik@proton.me>
2024-10-13 15:20:43 -04:00
Harrison (Harry) Cramer
38bde8a0e4 Bug Fixes (#382)
* fix: error messages and run all tests (#381)
* feat: Automatically open fold under cursor (#380)
* fix: discussion ID is not required (#383)

This is a #PATCH release.

---------

Co-authored-by: George Kontridze <george.kontridze@gmail.com>
Co-authored-by: Jakub F. Bortlík <jakub.bortlik@proton.me>
2024-09-26 10:11:48 -04:00
Harrison (Harry) Cramer
9fc47bd3bc feat!: Implements default keybindings for all actions.
This is a breaking change to the way the plugin is configured. If users are using the old configuration the plugin will warn them which fields have been removed in their configuration. Old keybindings can be found here: https://github.com/harrisoncramer/gitlab.nvim/pull/340#issuecomment-2282756924 (#331)

feat: Customize discussion tree chevrons (#339)
2024-08-11 22:29:08 -04:00
Harrison (Harry) Cramer
95dcc41885 Release (#330)
Fix diagnostic position when sha changes (#299)
Fix: Remove API calls on Discussion Close (#328)
Chore: Remove root node type (#329)

This is a PATCH release.
2024-07-06 13:09:56 -04:00
Harrison (Harry) Cramer
dc70c97810 Release (#327)
Fix: Only set autocommands for select popups (#315)
Docs: Small improvements to README and docs
Feat: Add branch info to choose_merge_request menu (#318)
Chore: Add heart emoji (#323)
Feat: Add highlight for mentions (#324)
Fix: Do Not Error w/Out Buffer Content (#325)

This is a MINOR release.
2024-07-04 21:55:31 -04:00
Harrison (Harry) Cramer
0d0ed1639a Tree Refresh; Draft Note Replies (#289)
* fix: always refresh discussion tree data after choosing a new branch 
* fix: rebuild discussion tree without collapsing nodes after all edit/delete/create actions
* feat: add command to refresh discussion tree
* feat: Add support for draft note replies, e.g. replies to existing notes and comments in draft form
* fix: allow backticks in comment suggestions

This is a #MINOR release
2024-04-25 19:15:08 -04:00
Harrison (Harry) Cramer
cf6ccddce3 Release 2.5.1 (#271)
* feat: Support for custom authentication provider functions (#270)
* feat: Support for adding "draft" notes to the review, and publishing them, either individually or all at once. Addresses feature request #223.
* feat: Lets users select + checkout a merge request directly within Neovim, without exiting to the terminal
* fix: Checks that the remote feature branch exists and is up-to-date before creating a MR, starting a review, or opening the MR summary (#278)
* docs: We require some state from Diffview, this shows how to load that state prior to installing w/ Packer. Fixes #94.

This is a #MINOR release.

---------

Co-authored-by: Jakub F. Bortlík <jakub.bortlik@proton.me>
Co-authored-by: sunfuze <sunfuze.1989@gmail.com>
Co-authored-by: Patrick Pichler <mail@patrickpichler.dev>
2024-04-22 16:56:27 -04:00
Harrison (Harry) Cramer
f906af0c3a Release (#256)
* fix: Jumping to wrong buffer (#261)
* fix: Go to last line and show warning when diagnostic is past the end of buffer (#262)
* fix: Get recent pipeline through other means (#266)
* feat: Add keymaps and linewise actions to layouts (#265)

This is a #MINOR release, because we are introducing new keybindings for the comment/note popups.

---------

Co-authored-by: Jakub F. Bortlík <jakub.bortlik@proton.me>
Co-authored-by: sunfuze <sunfuze.1989@gmail.com>
2024-04-15 09:56:21 -04:00
Harrison (Harry) Cramer
7c3ee0530b Temporary registers, SSH Port, Bug Fixes (#251)
- allows SSH Gitlab connection to have custom port
- introduces temporary registers
- fixes issue w/ quitting the popup on MR creation

This is a #MINOR release
2024-04-09 12:24:07 -04:00
Harrison (Harry) Cramer
b5b475ce8b 2.0.0 (#196)
This MR is a #MAJOR breaking change to the plugin. While the plugin will continue to work for users with their existing settings, they will be informed of outdated configuration (diagnostics and signs have been simplified) the next time they open the reviewer.

Fix: Trim trailing slash from custom URLs
Update: .github/CONTRIBUTING.md, .github/ISSUE_TEMPLATE/bug_report.md
Feat: Improve discussion tree toggling (#192)
Fix: Toggle modified notes (#188)
Fix: Toggle discussion nodes correctly
Feat: Show Help keymap in discussion tree winbar
Fix: Enable toggling nodes from the note body
Fix: Enable toggling resolved status from child nodes
Fix: Only try to show emoji popup on note nodes
Feat: Add keymap for toggling tree type
Fix: Disable tree type toggling in Notes
Fix Multi Line Issues (Large Refactor) (#197)
Fix: Multi-line discussions. The calculation of a range for a multiline comment has been consolidated and moved into the location.lua file. This does not attempt to fix diagnostics.
Refactor: It refactors the discussions code to split hunk parsing and management into a separate module
Fix: Don't allow comments on modified buffers #194 by preventing comments on the reviewer when using --imply-local and when the working tree is dirty entirely.
Refactor: It introduces a new List class for data aggregation, filtering, etc.
Fix: It removes redundant API calls and refreshes from the discussion pane
Fix: Location provider (#198)
Fix: add nil check for Diffview performance issue (#199)
Fix: Switch Tabs During Comment Creation (#200)
Fix: Check if file is modified (#201)
Fix: Off-By-One Issue in Old SHA (#202)
Fix: Rebuild Diagnostics + Signs (#203)
Fix: Off-By-One Issue in New SHA (#205)
Fix: Reviewer Jumps to wrong location (#206)

BREAKING CHANGE: Changes configuration of diagnostics and signs in the setup call.
2024-03-03 11:52:37 -05:00
Harrison (Harry) Cramer
faf2a25dc4 Fix: Line Comment Refactor (#180)
This MR re-implements and fixes logic that better handles single-line comments. It does this by parsing the hunk headers and examining the actual changes they contain in order to form the Gitlab payload correctly. Addresses #128
2024-02-18 21:19:31 -05:00
Harrison (Harry) Cramer
baee20b279 Add/Show/Delete Emojis on Notes (#181)
This MR adds the ability to view, add, and delete emojis from notes and comments.

This action can be performed by default with the `Ea` (emoji add) keybinding, and the `Ed` (emoji delete) keybinding. Only emojis added by the current user are eligible for deletion. The MR also implements a popup functionality which shows the user who added emojis on hover.

Implements #179
2024-02-18 21:16:53 -05:00
Jakub F. Bortlík
d05a23a7d5 Fix: Keep empty lines in discussion tree (#173)
* Docs: Fix typos and remove trailing spaces

* Fix: Split strings by new lines correctly

* Docs: Recommend breakindent option to improve tree nodes indentation

* Fix: Replace whole buffer when creating a new suggestion

Previously, a trailing empty line was left in the buffer.

---------

Co-authored-by: Jakub Bortlík <jakub.bortlik@phonexia.com>
2024-02-10 11:06:56 -05:00
Harrison (Harry) Cramer
50e06ceff6 Feat: Add and Remove Labels from an MR (#159)
This MR adds the ability to add or remove labels to a merge request. These labels are visible in the summary panel and are colored the same way as they would be in the Gitlab UI.

This is a MINOR release.
2024-01-13 10:37:05 -05:00
Harrison (Harry) Cramer
37a53842d0 Feat: Create Merge Request (#149)
- Adds the ability to create MRs to the plugin
- Adds the ability to jump to specific discussions/notes in the browser
- Fixes stale icons
- Adds debug keybinding for discussion tree for developers
2023-12-19 13:41:07 -05:00
Harrison (Harry) Cramer
571173c881 fix: Comments on unchanged, expanded lines (#146)
This MR fixes an issue with refreshes of the diagnostics and signs when users leave comments on unchanged lines.
2023-12-18 09:11:15 -05:00
Harrison (Harry) Cramer
9da62d982e Bugfix: Pipeline Job Names w/ Whitespace (#140)
Fix for the pipeline job output where the job name contained whitespace characters. Users will now see the output in a new tab. Support has been added for Windows OS.
2023-12-13 18:51:18 -05:00
Harrison (Harry) Cramer
d5510f9d9a Winbar Support + Notes and Discussions; Help Popup + Auto-Open (#133)
- Adds support for toggling between discussions and notes views
- Deprecates the split view shared with both discussions and notes at the same time
- Adds winbar to discussion split, with metadata about resolved and unresolved discussions
- Adds help popups with information about keybindings for all views
- Modifies highlights in discussion tree and default symbol for unresolved discussions

This is a MINOR version bump as the default behavior of the discussion tree is changed slightly. Existing configurations should still function.
2023-12-13 17:46:34 -05:00
Jakub F. Bortlík
cc68476b15 Make Popups Configurable (#129)
This makes the popups in the plugin (those for editing and creating comments, replies, the pipeline, etc) configurable. Users can change the default width, height, transparency, and border properties, and set overrides per popup.
2023-12-05 08:06:32 -05:00
johnybx
02db3e4b0e Feat: Sort Discussions by File Name (#102)
This MR adds the ability to sort discussions by file name, rather than just by date.

This is an optional configuration that can be passed in on startup. The MR also introduces a test suite for the Lua code that runs through Neovim, so that the plugin can be fully tested with required dependencies and APIs.

Major props to @johnybx for the hard work on this change!
2023-12-04 17:03:32 -05:00
Mars Peng
10b0b596ae Feat: Support ISO 8601 timestamp with offset (#124)
Fixes timezone offset support to date parsing from Gitlab as specified by the ISO 8601 format
2023-11-28 09:13:49 -05:00
Harrison (Harry) Cramer
c4a3229f16 Feat: Adds More Information to Summary Panel (#100)
This MR adds more information into the summary view, including the MR author, created at date, merge status, draft status, conflicts, and pipeline status, among other things. This is configurable via the setup function.
2023-11-20 18:56:19 -05:00
Harrison (Harry) Cramer
88b9196a2e Feat: Add Basic Lua Test Suite (#115)
This MR adds a Lua test suite to the project, run via busted, and introduces tests for a number of the utility functions. Subsequent work will have to be done to test functions that use the `vim.api` scope and external packages to the plugin.
2023-11-20 18:03:35 -05:00
Harrison (Harry) Cramer
ffdaf83784 BREAKING CHANGE: This is a breaking change, it deprecates the Delta Reviewer (#81)
BREAKING

This is a breaking change which deprecates support for the Delta reviewer. Now, only Diffview is supported.
2023-11-10 17:38:28 -05:00
mrparalon
a032c6434e Fix highlight for usernames (#83)
Changes regular expression for Gitlab usernames.
2023-11-08 13:43:23 -05:00
Harrison (Harry) Cramer
9742b5b229 Feat: Add Color Configuration (#82)
This MR adds the ability to customize colors for the discussion tree
2023-11-07 22:58:03 -05:00
Harrison (Harry) Cramer
6b7e67b325 Fixes #71 (#75)
This MR fixes the check for The `diffview` reviewer. Rather than checking for the presence of the command, we check for the module itself.
2023-10-31 18:46:18 -04:00
Harrison (Harry) Cramer
a055c4c988 Adds Formatting to the CI (#69)
This MR adds linting and formatting to the CI pipeline for the repository for both the Golang and Lua code.
2023-10-30 23:54:38 -04:00
johnybx
3a67424fec Multiline comment and suggestion (#66)
This MR adds the ability to leave multi-line comments and suggested changes to an MR. The features are only supported for `diffview` because we plan to deprecate `delta` as a reviewer soon.
2023-10-30 21:58:53 -04:00
johnybx
c8a0267ba6 Add option to choose random server port (#65)
Updates the plugin to automatically choose a random port when started when no port is provided. This will allow multiple Neovim instances to open at the same time in different projects.
2023-10-21 11:39:37 -04:00
Harrison (Harry) Cramer
4e473dab7e Feat: Upload Files (#59)
This MR adds the ability to add files to comments, notes, replys, and MR descriptions via a picker.

The file will get uploaded to Gitlab and the filepath will be automatically added into the current popup buffer at the current line. You can then save the changes with the normal save functionality.
2023-09-08 10:02:01 -04:00
Harrison (Harry) Cramer
57b842cad5 Feat: Windows Support (#57)
This MR adds support for Windows machines
2023-09-06 20:25:54 -04:00
Harrison Cramer
4792e03416 Follow-up: Require Different Reviewers
This plugin previously only supported the Delta reviewer. Thanks to work
from @mrparalon it now supports Diffview also. This MR adjusts the
requirements to account for this, and the README.

It also addresses a small bug in the original implementation regarding
an async file opening action, and applies formatting to the diffview
file consistent with the rest of the project
2023-09-05 10:22:19 -04:00
Harrison (Harry) Cramer
e6e0bf4093 Feat: View + Manage Pipeline (#53)
This MR adds the `.pipeline()` command which opens up the pipeline popup. This popup shows information about the current pipeline and it's jobs, and gives users the ability to re-trigger failed jobs.
2023-09-03 18:01:54 -04:00
Harrison (Harry) Cramer
152c55fd57 Feat: Notes (Non-Linked Comments) (#52)
Adds support for notes. These are comments that are not linked to specific lines of code in the MR.
2023-08-31 21:36:40 -04:00
Harrison Cramer
d92cf39dd7 Bugfix: Merge Function
Previously, the merge function would override the entire default table during a
merge if a matching table was found in the override table.

This would prevent users from modifying a single setting (for instance changing
just a single icon, rather than the whole thing)
2023-08-29 19:30:46 -04:00
Harrison (Harry) Cramer
19468a3d2d BREAKING CHANGE: Delta Pager + Large Refactor (#43)
BREAKING CHANGE: This MR addresses an underlying issue with the original implementation in regards to detecting line numbers for comments. 

As such, this is a major breaking change. The setup function signature has changed, please review the `README.md` for the new arguments. The delta pager has also been added as a dependency: https://github.com/dandavison/delta

There will be future work to implement a native solution for parsing changes and line numbers.
2023-08-27 17:26:54 -04:00
Harrison Cramer
0ccff54933 Remove unused branch_exists function 2023-08-17 16:24:29 -04:00
Harrison (Harry) Cramer
f5bf720b61 Bugfix: Don't Start Server Right Away (#40)
This MR simplifies the plugin quite a bit by only attempting to start the Go server after you specifically try to run a command. This streamlines working on feature branches and removes the need for a `base_branch` property entirely.
2023-08-17 16:22:53 -04:00
Harrison (Harry) Cramer
d25c62ae9f Adding Support for Resolving/Unresolving Discussions (#39)
This MR adds the ability to mark discussions as resolved or unresolved. This is important to the review process.
2023-08-17 12:42:36 -04:00
Harrison (Harry) Cramer
844e093294 Add/Remove Reviewers and Assignees (#38)
Adds APIs for the ability to add or remove reviewers and assignees to a merge request. The eligible reviewers and assignees are pulled from the current members of a project.
2023-08-16 21:42:53 -04:00
Harrison (Harry) Cramer
6bb7575c6d Attach UUIDs to Discussion Text (#37)
Three backticks will break the discussion tree, this MR specifically adds custom UUIDs to each text node to avoid this issue.
2023-08-15 23:33:52 -04:00
Harrison (Harry) Cramer
2028be2154 Feat: Edit PR Description (#22)
This MR makes it possible to edit the description. Non-breaking, will happen within the normal description popup.
2023-08-14 20:37:36 -04:00
Harrison (Harry) Cramer
b4077ba8c2 Feat: Discussion Changes + Code Cleanup (#24)
* Changed to relative time

* Added days

* Updated display of discussion tree

* Updated a lot of functionality + behaviors for discussions + comments

* Modified state on deletion/creation

* Fixed relative times
2023-08-14 17:19:39 -04:00
Harrison (Harry) Cramer
4f0d4b49ef BREAKING CHANGE: Setup refactor and code cleanup
This MR makes several major tweaks to the codebase. Primarily it adjusts
the setup steps for the application so that rather than providing just
the project ID in the `.gitlab.nvim` file, users can also provide a
vareity of other settings, such as auth_token, base_branch, and so
forth. This is to make the project more extensible in the future.

This MR also fixes a variety of issues with error handling in the code,
primarily in the request/response model between the Lua jobs and the
Golang server.

BREAKING CHANGE: Modifies `.gitlab.nvim` and setup steps
2023-08-06 11:23:36 -04:00
Harrison (Harry) Cramer
ade9f81426 Revert "Pull down all non-code notes (#14)" (#15)
This reverts commit f15711edab.
2023-08-04 14:31:55 -04:00
Harrison (Harry) Cramer
f15711edab Pull down all non-code notes (#14)
This commit changes the filter on the API response so that we are only
filtering out system level notes. This means we get notes that are not
linked to specific locations in the code.

Subsequent work will have to separate these types of notes from the
other code-linked notes and probably display them in some sort of
separate tree.
2023-08-04 14:25:58 -04:00
Harrison (Harry) Cramer
23a21b867b Removed notify as a dependency (#11)
Fixes: https://www.reddit.com/r/neovim/comments/14irqwt/comment/jphw2cx/?utm_source=share&utm_medium=web2x&context=3
2023-06-30 16:35:50 -04:00
Harrison Cramer
f5038656a9 Post MR cleanup (better error handling, comments, etc) 2023-05-20 09:42:00 -07:00
Harrison (Harry) Cramer
63fc025070 Change to HTTP Model (#5) 2023-05-19 17:28:58 -07:00