Commit graph

113 commits

Author SHA1 Message Date
Carl-Robert Linnupuu
ba12865a72 feat: support partial code completion acceptance 2024-12-11 14:26:07 +00:00
Carl-Robert Linnupuu
cdb0d7b7ad fix: NPE caused by lookup element sorter 2024-12-03 17:10:46 +00:00
Carl-Robert Linnupuu
89344346c8
feat: consolidate all prompts into a single settings view (#775)
* feat: consolidate all prompts into a single configurable

* feat: implement prompts settings view

* feat: use prompts from PromptsSettings state

* feat: use startInNewWindow settings value

* fix: landing view action placeholder

* feat: update default chat prompts
2024-11-22 10:02:13 +00:00
Carl-Robert Linnupuu
2ab6d1a54c feat: explain commits from vcs log tree (relates #688) 2024-11-15 09:07:32 +00:00
Carl-Robert Linnupuu
755791aea8 refactor: rewrite method lookup listener and improve error handling 2024-11-14 13:56:07 +00:00
Carl-Robert Linnupuu
8daf4f5f05
feat: improve code completion user experience (#763) 2024-11-13 23:18:53 +00:00
Carl-Robert Linnupuu
4521a3335c fix: OpenAI edit code request building (fixes #737) 2024-10-16 15:32:29 +03:00
Carl-Robert Linnupuu
6641daf6fd
feat: add quick code snippet referencing in prompts (#690)
* feat: ability to include cone snippets in prompt text field

* refactor: revert changes

* refactor: improve main editor actions group configuration

* refactor: clean up

* refactor: improve editor actions keymap

* fix: inlay casting

* refactor: consolidate labels
2024-09-10 19:41:03 +03:00
Carl-Robert Linnupuu
c83d9eff00 fix: apply next word inlay suggestion 2024-09-01 03:39:01 +03:00
Carl-Robert Linnupuu
01a8d6264f feat: add proper streaming implementation 2024-08-31 19:05:33 +03:00
Carl-Robert Linnupuu
2f7ba826c7 refactor: implement ConfigurationSettings as a Kotlin service (#634) 2024-08-23 11:47:42 +03:00
Carl-Robert Linnupuu
2a0747f923 feat: add default docs and other minor improvements 2024-08-17 15:13:57 +03:00
Carl-Robert
a2d71efd78 feat: add webpage documentation support (#650)
* feat: documentation support while chatting

* feat: support managing web documentation entries
2024-08-17 15:13:52 +03:00
Carl-Robert
307c12e15d feat: improved popup suggestions and personas support (#638)
* feat: support personas

* fix: replace previous system prompts with personas

* feat: add persona toolbar label

* refactor: rename properties

* refactor: clean up

* fix: personas settings configurable state

* refactor: code cleanup

* feat: list item auto highlightning

* feat: replace personas toolbar label with action link

* refactor: code cleanup

* fix: manual items not being able to delete

* fix: personas settings configurable state

* refactor: clean up code

* fix: folder selection
2024-07-26 15:06:09 +03:00
Phil
60d71cd301 feat: add project context to code completions (#571)
* feat: add context to code completions

* feat: context finder for Python

* feat: improve and refactor context finder for Python

* feat: include method calls in JavaContextFinder

* test: add JavaContextFinder tests

* test: add PythonContextFinder tests

* fix: CompletionContextService thread

* fix: InfillPromptTemplate context files string

* refactor: simplify findRelevantElements for Java and Python

* feat: only add code snippets instead of files for code-completion context

* feat: add default multi-file prompt template

* fix: add Codestral multi-file FIM

* feat: add feature flag for context aware code completions

* feat: truncate project context elements for code completion
2024-07-12 14:25:24 +03:00
Carl-Robert
b1d8c521c4 feat: fast code edits (#601)
* feat: initial implementation of direct code edits

* fix: popup model selection

* refactor: simplify code replacement logic

* feat: interactive code modifications

* refactor: remove junk
2024-06-30 01:22:18 +03:00
Carl-Robert Linnupuu
786abd0b31 chore: remove You.com support 2024-06-30 01:22:03 +03:00
Carl-Robert Linnupuu
fe7a33ac2a Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-05-13 19:08:56 +03:00
Rene Leonhardt
7c668ae143
feat: Start/stop LLaMA Server from statusbar (#544) 2024-05-13 19:02:22 +03:00
Carl-Robert Linnupuu
d9d7c65688 Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-05-13 15:42:09 +03:00
Phil
fcd0808111
feat: add keyboard shortcuts for Editor actions (#542) 2024-05-10 17:10:29 +03:00
Carl-Robert Linnupuu
8883200817 Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-05-09 14:00:56 +03:00
Carl-Robert
7bee59a90e
feat: extract providers into their standalone configurables (#538)
* fix: extract services to their own configurables

* feat: switch to selected provider automatically upon apply

* fix: credentials loading at once

* fix: rename llama.cpp title
2024-05-09 11:16:09 +03:00
Phil
74fc2e6219
feat: add Google Gemini API support (#535) 2024-05-08 16:51:32 +03:00
Jack Boswell
e40630d796
feat: Implement Ollama as a high-level service (#510)
* Initial implementation of Ollama as a service

* Fix model selector in tool window

* Enable image attachment

* Rewrite OllamaSettingsForm in Kt

* Create OllamaInlineCompletionModel and use it for building completion template

* Add support for blocking code completion on models that we don't know support it

* Allow disabling code completion settings

* Disable code completion settings when an unsupported model is entered

* Track FIM template in settings as a derived state

* Update llm-client

* Initial implementation of model combo box

* Add Ollama icon and display models as list

* Make OllamaSettingsState immutable & convert OllamaSettings to Kotlin

* Add refresh models button

* Distinguish between empty/needs refresh/loading

* Avoid storing any model if the combo box is empty

* Fix icon size

* Back to mutable settings
There were some bugs with immutable settings

* Store available models in settings state

* Expose available models in model dropdown

* Add dark icon

* Cleanups for CompletionRequestProvider

* Fix checkstyle issues

* refactor: migrate to SimplePersistentStateComponent

* fix: add code completion stop tokens

* fix: display only one item in the model popup action group

* fix: add back multi model selection

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-05-08 01:11:13 +03:00
Phil
e0f54a6b93
fix: add optional Git4Idea dependency to plugin.xml (#526) 2024-05-07 10:41:10 +03:00
Carl-Robert Linnupuu
e7ef58ad3d Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-04-22 11:49:37 +03:00
Simon Svensson
14f3254913
feat: code completion for "Custom OpenAI Service" (#476)
* Add code completion setting states for custom service

* Add settings for code completion in Custom OpenAI service

* Move code completion section to the bottom

* Create test testFetchCodeCompletionCustomService

* Add Custom OpenAI to the "Enable/Disable Completion" actions

* New configuration UI separating /v1/chat/completions from /v1/completions

* Code completion for Custom Service

* Formatting fixes

* Move prefix and suffix to templates in body

* Message updates

* New tabbed UI for Chat and Code Completions

* convert to kotlin, improve ui and other minor changes

* fix test connection for chat completions

* add help tooltips

* allow backward compatibility

* support prefix and suffix placeholders

* fix initial state loading

---------

Co-authored-by: Jack Boswell (boswelja) <boswelja@outlook.com>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-04-20 23:23:08 +03:00
Carl-Robert Linnupuu
dcee4fdbb3 Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-04-07 18:24:16 +03:00
Carl-Robert Linnupuu
4688a1c8d0 refactor: remove 'Standard' prefix from toolwindow component class names, and other minor cleanup 2024-04-07 16:45:04 +03:00
Carl-Robert Linnupuu
30025d2378 feat: request focus for text area on toolwindow state changes (closes #423) 2024-04-06 00:49:24 +03:00
Carl-Robert Linnupuu
a825d1cdb4 feat: support partial completion acceptance 2024-03-30 16:02:38 +02:00
Carl-Robert Linnupuu
b72ddfccd6 fix: migrate from StartupActivity to ProjectActivity 2024-03-27 21:48:48 +02:00
Carl-Robert
657868453f
feat: migrate to a new inline completion api (#425)
* fix: plugin since/until build versions

* add necessary kotlin deps

* migrate to new inline completions api

* remove previous implementation

* replace build and platform versions

* bump gradle-intellij-plugin version
2024-03-27 14:34:09 +02:00
Carl-Robert Linnupuu
9990c6a57b feat: add code completion feature toggle keyboard-shortcut (#392) 2024-03-12 16:54:51 +02:00
Carl-Robert
9706a357d2
feat: support claude completions (#398) 2024-03-06 12:48:29 +02:00
Carl-Robert
8507c779b1
feat: support custom OpenAI-compatible service (#383) 2024-02-23 17:41:44 +02:00
Carl-Robert Linnupuu
4ed74a31c1 feat: second set of autocomplete improvements
- support typing as suggested functionality
- do not fetch completions on cursor change
- other minor fixes
2024-02-11 01:31:34 +02:00
Carl-Robert
93145098f5
feat: settings and credentials refactoring (#360)
* refactor service credential managers

* refactor azure settings

* refactor openai settings

* refactor llama settings

* refactor you settings

* refactor included files settings

* refactor general settings

* refactor advanced settings

* fix advanced settings component init

* refactor project structure

* refactor service settings forms

* remove openai quota exceeded field validator

* fix credential modified conditions

* fix and rearrange minor stuff

* fix you auth logic, add credential cache
2024-02-08 01:02:08 +02:00
Carl-Robert Linnupuu
097f0914bf refactor: extract configuration state into standalone class 2024-02-07 02:13:22 +02:00
Phil
7387cf4536
Inline Autocompletion Pt.2 (#333)
* Add first draft of inline code completion with mock text

* Adds InsertInlineTextAction for inserting autocomplete suggestion with tab

- Changed to disable suggestions when text is selected
- Adds and removes the insert action based on when it shows the inlay hint

* Request inline code completion

* Move inline completion prompt into txt file

* Add inline completion settings to ConfigurationState

* Fix code style

* Use EditorTrackerListener instead of EditorFactoryListener to enable inline completion

* Code completion requests synchronously without SSE

* Use LlamaClient.getInfill() for inline code completion

* support inlay block element rendering, clean up code

* Use only enclosed Method or Class contents for code completion if possible

* Refactor extracting PsiElement contents in code completion

* bump llm-client

* fix completion call from triggering on EDT, force method params to be nonnull by default

* refactor request building, decrease delay value

* Trigger code completion if cursor is not inside a word

* Improve inlay rendering

* Support cancellable infill requests

* add statusbar widget, disable completions by default

* Show error notification if code completion failed

* Truely disable/enable EditorInlayHandler when completion is turned off/on

* Add CodeCompletionEnabledListener Topic to control enabling/disabling code-completion

* Add progress indicator for code-completion with option to cancel

* Add CodeCompletionServiceTest + refactor inlay ElementRenderers

* several improvements

- replace timer implementation with call debouncing
- use OpenAI /v1/completions API for completions
- code refactoring

* trigger progress indicator only for llama completions

* fix tests

---------

Co-authored-by: James Higgins <james.isaac.higgins@gmail.com>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-01-31 01:05:31 +02:00
Carl-Robert
f831a1facd
feat: add support for auto resolving compilation errors (#318) 2023-12-29 16:41:47 +02:00
Strange Dreams
7031a6dc73
Move the CodeGPT Telemetry settings screen. (#222)
The CodeGPT Telemetry settings screen was previously a 'stand-alone' configuration window under the 'Tools' section of the IDEA settings. Moving it under the parent plugin makes it more apparent and keeps it better organized.
2023-12-21 23:19:44 +02:00
Carl-Robert
f4be25bdac
Feature: Support chatting with multiple files (#306)
* Initial implementation

* Refactor UI related classes and organize imports

* Display selected files notification, include the files in the prompt

* feat: store referenced file paths in the messate state

* feat: add selected files accordion

* feat: update UI

* feat: improve file selection

* feat: support prompt template configuration

* fix: token calculation for virtualfile checkbox tree

* refactor: clean up

* refactor: move labels/descriptions to bundle
2023-12-12 22:30:39 +02:00
Carl-Robert Linnupuu
1392775940 feat: display notification on plugin updates 2023-12-02 01:14:37 +02:00
Carl-Robert
1df20ccb86
Update toolwindow UI (#290) 2023-11-26 10:52:47 +02:00
Carl-Robert Linnupuu
53bdbcd4f5 Remove Quartz Scheduler, You.com model change topic, theme utils, and include other basic refactoring 2023-11-21 22:47:09 +02:00
Carl-Robert
44e5aa79dd
Support git commit message generation (#276)
* Add git commit message generation feature using OpenAI service
2023-11-17 01:20:00 +02:00
Carl-Robert Linnupuu
346218b512 Clean up code 2023-11-14 16:20:59 +02:00
Carl-Robert Linnupuu
ec3120a5e6 Add interactive total token count label, codebase refactoring 2023-11-14 13:27:15 +02:00