Skip to content

Commit 82db97e

Browse files
sestinjPatrick-ErichsenpriyashpatildevbyjonahYohannZe
authored
Dev (#1807)
* Nate/control plane client (#1691) * docs: add docs and schema for "OS" provider (#1536) * ignore .env * fix(gui): ctx rendering w/ renderInlineAs: "" (#1541) * ✨ use and cache imports for autocomplete (#1456) * ✨ use and cache imports for autocomplete * fix tsc * fix codeqwen autocomplete leading space * add voyage rerank-1 * feat: `--noEmit` for tsc checks in CI (#1559) * docs: update CustomContextProvider docs (#1557) * add stop tokens to qwen prompt * update docs to reflect 3.5 sonnet being best * docs: comment out unused providers (#1561) * import Handlebars * feat: toast notification for config updates (#1560) * feat: toast notification for config updates * feat: only trigger toast on config.json save * displayRawMarkdown option * feat: open pane on install (#1564) * feat: open pane on activation * comment out testing code * update to reflect 16 stop words limit for deepseek * feat: only trigger config update toast in vscode (#1571) * docs(prompt-files): fix typos + clarify (#1575) * doc: prompt file typo + clarifications * fix: add back correct docs * chore: add telemetry for pageviews (#1576) * feat: update onboarding w/ embeddings model (#1570) * chore(gui): remove unused pages * feat: add embeddings step * feat: update styles * feat: copy button updates * fix: correct pull command for embed model * fix: remove commented code * fix: remove commented code * feat: simplify copy btn props * chore: rename onboarding selection event * feat: add provider config * fix: undo msg name * remove dead code * fix: invalid mode check * fix: remove testing logic * docs(telemetry): add pageviews to tracking list (#1581) * Add reranker configuration options to codebase embedding docs (#1584) - Introduce reranker concept - List available reranker options - Provide configuration instructions - Update keywords to include "reranker" * chore: update pr template with screenshots (#1590) * Refactor ConfirmationDialog to use SecondaryButton for cancel action (#1586) * Added instructions for running docs server locally (#1578) - Added NPM script method - Added VS Code task method - Update contributing guidelines * Update branch policy (#1577) - Change PR target to `dev` branch - Update `CONTRIBUTING.md` instructions * Consolidate example configurations into the main configuration guide (#1579) - Moved examples to configuration.md - Deleted the separate examples.md file - Updated sidebar order and links - Improved readability and structure in configuration.md * fix: fullscreen gui retains context when hidden, fixed fullscreen focusing (#1582) * Update completionProvider.ts (warning tab-autocomplete models) (#1566) * feat: enhanced IndexingProgressBar with blinking dot feature - Integrated BlinkingDot component - Added STATUS_COLORS for various states - Replaced CircleDiv with BlinkingDot in UI - Updated status messages and layout * small UI tweaks * feat(gui): enhance ModelCard, ModelProviderTag, and Toggle components (#1595) - add styling and adjustments to ModelCard - update ModelProviderTag font size - remove box shadow from Toggle component - tweak icon styles in ModelCard - improve alignment and spacing * media query * feat: add best experience onboarding * fix: file rename * stop movement on button hover by keeping same border thickness * fix mistake in setting cursor: pointer * fix when free trial option is shown * Support Node.js versions below 20 for streaming response handling (#1591) - Add fallback for Node < 20 - Implement toAsyncIterable for streaming - Use TextDecoder for manual decoding - Maintain existing streaming for Node 20+ * small fixes * feat: add free trial card to onboarding (#1600) * feat: add free trial card to onboarding * add import * fix hasPassedFTL * fix /edit cancellation from UI * feat: add `applyCodeBlock` experimental prop (#1601) * feat: add new model styling improvements (#1609) * feat: add new model styling improvements * better gap size * feat: update bug_report.yml (#1610) * chore: update bug_report.yml * typo fix * feat: add labels to "Add docs" dialog (#1612) * feat: add labels to "Add docs" dialog * remove autofocus * don't double load config * small fixes * speed up directory traversal, and use correct native path module * option not to show config update toast * merge air-gapped and recommended setup pages * chore: add telemetry for full screen toggle (#1618) * Fix headings in codebase-embeddings.md (#1617) * mention jetbrains * docs: update changie (#1619) * feat: updated changie config * hide toc and autogenerate * Update changelog.mdx * link to deeper explanation of embeddings models * ensure target="_blank" for all links in sidebar * fix gif links in intellij README.md * don't require rust in dependency installation * chore: fix padding on gh button (#1620) * chore: adjust button padding * Update tasks.json * escape colons in diff path * smoother lancedb indexing reporting * smooth progress updates for indexing * fix tsc err * rerank-lite-1 * remove doccs * basic tests for VS Code extension * improved testing of VS Code extension * docs: add docs and schema for "OS" provider (#1536) * ignore .env * 🚑 fix constant warnings when onboarding with Ollama * ✨ use and cache imports for autocomplete (#1456) * ✨ use and cache imports for autocomplete * fix tsc * team analytics * apply control plane settings * workos auth * ide protocol get session info * UI for auth * profile switching * small fixes * updates * refresh tokens * updates * fix tsc errs * model select in toolbar to make room for profile selector * prod client id * link to prod URL * internal beta option * profiles change listener --------- Co-authored-by: Patrick Erichsen <[email protected]> Co-authored-by: Priyash <[email protected]> Co-authored-by: Jonah Wagner <[email protected]> Co-authored-by: YohannZe <[email protected]> Co-authored-by: Dan Dascalescu <[email protected]> * temporary patch for type errs * Dev (#1689) * Fix an issue where CMD+K does not clear the terminal when the terminal has focus (#1671) On MacOS, ⌘+K is bound, by default, to Terminal:Clear. Without this change ⌘+K does not clear the terminal but instead iniates a chord sequence and waits for the next stroke of the chord. Co-authored-by: Rob Leidle <[email protected]> * Change treeSitter to cache the Language objects it loads from wasm (#1672) Without this change, for a repository with 600 typescript files, the indexer would fail to finish correctly and there would be many of the following errors in the webview console log: 'Unable to load language for file ${path} RuntimeError: table index is out of bounds' The following bash will create a repo that reproduces the problem: current_path="." for ((i=1; i<=20; i++)); do new_folder="folder-$i" mkdir -p "$current_path/$new_folder" current_path="$current_path/$new_folder" for ((a=1; a<=30; a++)); do head -c 10000 /dev/urandom | base64 > "$current_path/file-$a.ts" done done Co-authored-by: Rob Leidle <[email protected]> * acknowledge sourcemap flag in esbuild.js * don't run jetbrains-release.yaml on vscode releases * further testing for walkDir * chore: add telemetry to commands (#1673) * test: Add basic unit test to baseLLM (#1668) * update version * test: Add basic unit test to baseLLM --------- Co-authored-by: Nate Sesti <[email protected]> Co-authored-by: inimaz <[email protected]> * feat: add Quick Actions CodeLens feature (#1674) * docs: add docs and schema for "OS" provider (#1536) * ignore .env * ✨ use and cache imports for autocomplete (#1456) * ✨ use and cache imports for autocomplete * fix tsc * add voyage rerank-1 * import Handlebars * feat: open pane on install (#1564) * feat: open pane on activation * comment out testing code * chore: add telemetry for pageviews (#1576) * feat: update onboarding w/ embeddings model (#1570) * chore(gui): remove unused pages * feat: add embeddings step * feat: update styles * feat: copy button updates * fix: correct pull command for embed model * fix: remove commented code * fix: remove commented code * feat: simplify copy btn props * chore: rename onboarding selection event * feat: add provider config * fix: undo msg name * remove dead code * fix: invalid mode check * fix: remove testing logic * fix: fullscreen gui retains context when hidden, fixed fullscreen focusing (#1582) * small UI tweaks * media query * feat: add best experience onboarding * small fixes * feat: add free trial card to onboarding (#1600) * feat: add free trial card to onboarding * add import * chore: add telemetry for full screen toggle (#1618) * rerank-lite-1 * remove doccs * basic tests for VS Code extension * improved testing of VS Code extension * manually implement stop tokens for hf inference api * chore: onboarding metrics (#1626) * fix: pageview tracking * feat: add onboarding telemetry * create single `onboardingStatus` type * improved var naming * remove console logs * fix windows performance issue * rename vscodeExtension.ts * migration of onboarding variables * "stash" instead of "delete" in indexing progress * fix preview.yaml * also fix main.yaml * Update troubleshooting.md (#1637) * feat: add quick actions * Update index.d.ts * quick actions mvp * update docs * subscribe to vscode change settings * Update commands.ts * cleanup * Update quick-actions.md * Update VerticalPerLineCodeLensProvider.ts * resolve feedback --------- Co-authored-by: Nate Sesti <[email protected]> Co-authored-by: Nate Sesti <[email protected]> Co-authored-by: Jonah Wagner <[email protected]> * chore: add `isCommandEvent` to command telemetry (#1675) * chore: add `isCommandEvent` to command telemetry * Update commands.ts * Nate/better retrieval (#1677) * deduplicatearray tests * break out separate retrieval pipelines * IConfigHandler * tests for codebase indexer * better .continueignore for continue * indexing fixes * ignore .gitignore and .continueignore when indexing * retrieval pipeline improvements * fix formatting err in out .continueignore * add necessary filter to lance_db_cache * update package.json version * skip unused tests * don't ignore .prompt files * update version * Update pull_request_template.md * don't use multi-media format when there are multiple text items * add free trial experience (#1685) * fix: add code range for quick actions/fixes (#1687) * fix: add code range for quick actions/fixes * Update test.js * add pathSep message type * docs improvements * jetbrains fix * update package.json version --------- Co-authored-by: Rob Leidle <[email protected]> Co-authored-by: Rob Leidle <[email protected]> Co-authored-by: Patrick Erichsen <[email protected]> Co-authored-by: inimaz <[email protected]> Co-authored-by: inimaz <[email protected]> Co-authored-by: Jonah Wagner <[email protected]> Co-authored-by: Priyash <[email protected]> * update package.json version * skip extension tests * update package.json version * handlebars import * don't push package.json version change from CI * fix: scroll issues w/ code blocks (#1688) * fix: scroll issues w/ code blocks * chore: name offset * chore: remove docs start * chore: update headings on troubleshooting.md (#1696) * ignore .svn folder for indexing (#1699) * chore: clearer naming for `useSuffix` (#1702) * chore: clearer naming for `useSuffix` * schema updates * fix: cmd+shft+l closes sidebar if focused (#1638) * docs: add docs and schema for "OS" provider (#1536) * ignore .env * ✨ use and cache imports for autocomplete (#1456) * ✨ use and cache imports for autocomplete * fix tsc * add voyage rerank-1 * import Handlebars * feat: open pane on install (#1564) * feat: open pane on activation * comment out testing code * chore: add telemetry for pageviews (#1576) * feat: update onboarding w/ embeddings model (#1570) * chore(gui): remove unused pages * feat: add embeddings step * feat: update styles * feat: copy button updates * fix: correct pull command for embed model * fix: remove commented code * fix: remove commented code * feat: simplify copy btn props * chore: rename onboarding selection event * feat: add provider config * fix: undo msg name * remove dead code * fix: invalid mode check * fix: remove testing logic * fix: fullscreen gui retains context when hidden, fixed fullscreen focusing (#1582) * small UI tweaks * media query * feat: add best experience onboarding * small fixes * feat: add free trial card to onboarding (#1600) * feat: add free trial card to onboarding * add import * chore: add telemetry for full screen toggle (#1618) * rerank-lite-1 * remove doccs * basic tests for VS Code extension * improved testing of VS Code extension * manually implement stop tokens for hf inference api * chore: onboarding metrics (#1626) * fix: pageview tracking * feat: add onboarding telemetry * create single `onboardingStatus` type * improved var naming * remove console logs * fix windows performance issue * rename vscodeExtension.ts * migration of onboarding variables * "stash" instead of "delete" in indexing progress * fix preview.yaml * also fix main.yaml * Update troubleshooting.md (#1637) * feat: close panel if main input is focused * add skip param * Update TipTapEditor.tsx * merge dev * Update commands.ts --------- Co-authored-by: Nate Sesti <[email protected]> Co-authored-by: Nate Sesti <[email protected]> Co-authored-by: Jonah Wagner <[email protected]> * bugfix: quick actions undefined array (#1704) * feat: add rich quick pick for quick edit (#1706) * feat: multistep quick pick * fix: multi step for context provider * Update test.js * Create deepseek.md (#1708) * style: add max height to model selector (#1712) * update styling * remove testing code * remove comments * feat: add tutorial card (#1716) * feat: create tutorial card * Update TutorialCard.tsx * feat: add file search to quick edit (#1714) * feat: multistep quick pick * fix: multi step for context provider * Update test.js * add file search * complete file search * remove unused import * add comments * Update utils.ts * update naming * chore: move quick pick instantiation (#1723) * Break out into NPM modules (#1726) * config.json types * export all schemas * break out request logic into packages * update openai adapters to export body types * update packaging of npm modules * update packages * continue proxy * mistral * Fix typo in documentation (#1722) In set-up-codestral.md "Trobleshooting" -> "Troubleshooting" * update package.json version * 🪄 model dropdown, control plane (#1692) * Nate/control plane client (#1691) * docs: add docs and schema for "OS" provider (#1536) * ignore .env * fix(gui): ctx rendering w/ renderInlineAs: "" (#1541) * ✨ use and cache imports for autocomplete (#1456) * ✨ use and cache imports for autocomplete * fix tsc * fix codeqwen autocomplete leading space * add voyage rerank-1 * feat: `--noEmit` for tsc checks in CI (#1559) * docs: update CustomContextProvider docs (#1557) * add stop tokens to qwen prompt * update docs to reflect 3.5 sonnet being best * docs: comment out unused providers (#1561) * import Handlebars * feat: toast notification for config updates (#1560) * feat: toast notification for config updates * feat: only trigger toast on config.json save * displayRawMarkdown option * feat: open pane on install (#1564) * feat: open pane on activation * comment out testing code * update to reflect 16 stop words limit for deepseek * feat: only trigger config update toast in vscode (#1571) * docs(prompt-files): fix typos + clarify (#1575) * doc: prompt file typo + clarifications * fix: add back correct docs * chore: add telemetry for pageviews (#1576) * feat: update onboarding w/ embeddings model (#1570) * chore(gui): remove unused pages * feat: add embeddings step * feat: update styles * feat: copy button updates * fix: correct pull command for embed model * fix: remove commented code * fix: remove commented code * feat: simplify copy btn props * chore: rename onboarding selection event * feat: add provider config * fix: undo msg name * remove dead code * fix: invalid mode check * fix: remove testing logic * docs(telemetry): add pageviews to tracking list (#1581) * Add reranker configuration options to codebase embedding docs (#1584) - Introduce reranker concept - List available reranker options - Provide configuration instructions - Update keywords to include "reranker" * chore: update pr template with screenshots (#1590) * Refactor ConfirmationDialog to use SecondaryButton for cancel action (#1586) * Added instructions for running docs server locally (#1578) - Added NPM script method - Added VS Code task method - Update contributing guidelines * Update branch policy (#1577) - Change PR target to `dev` branch - Update `CONTRIBUTING.md` instructions * Consolidate example configurations into the main configuration guide (#1579) - Moved examples to configuration.md - Deleted the separate examples.md file - Updated sidebar order and links - Improved readability and structure in configuration.md * fix: fullscreen gui retains context when hidden, fixed fullscreen focusing (#1582) * Update completionProvider.ts (warning tab-autocomplete models) (#1566) * feat: enhanced IndexingProgressBar with blinking dot feature - Integrated BlinkingDot component - Added STATUS_COLORS for various states - Replaced CircleDiv with BlinkingDot in UI - Updated status messages and layout * small UI tweaks * feat(gui): enhance ModelCard, ModelProviderTag, and Toggle components (#1595) - add styling and adjustments to ModelCard - update ModelProviderTag font size - remove box shadow from Toggle component - tweak icon styles in ModelCard - improve alignment and spacing * media query * feat: add best experience onboarding * fix: file rename * stop movement on button hover by keeping same border thickness * fix mistake in setting cursor: pointer * fix when free trial option is shown * Support Node.js versions below 20 for streaming response handling (#1591) - Add fallback for Node < 20 - Implement toAsyncIterable for streaming - Use TextDecoder for manual decoding - Maintain existing streaming for Node 20+ * small fixes * feat: add free trial card to onboarding (#1600) * feat: add free trial card to onboarding * add import * fix hasPassedFTL * fix /edit cancellation from UI * feat: add `applyCodeBlock` experimental prop (#1601) * feat: add new model styling improvements (#1609) * feat: add new model styling improvements * better gap size * feat: update bug_report.yml (#1610) * chore: update bug_report.yml * typo fix * feat: add labels to "Add docs" dialog (#1612) * feat: add labels to "Add docs" dialog * remove autofocus * don't double load config * small fixes * speed up directory traversal, and use correct native path module * option not to show config update toast * merge air-gapped and recommended setup pages * chore: add telemetry for full screen toggle (#1618) * Fix headings in codebase-embeddings.md (#1617) * mention jetbrains * docs: update changie (#1619) * feat: updated changie config * hide toc and autogenerate * Update changelog.mdx * link to deeper explanation of embeddings models * ensure target="_blank" for all links in sidebar * fix gif links in intellij README.md * don't require rust in dependency installation * chore: fix padding on gh button (#1620) * chore: adjust button padding * Update tasks.json * escape colons in diff path * smoother lancedb indexing reporting * smooth progress updates for indexing * fix tsc err * rerank-lite-1 * remove doccs * basic tests for VS Code extension * improved testing of VS Code extension * docs: add docs and schema for "OS" provider (#1536) * ignore .env * 🚑 fix constant warnings when onboarding with Ollama * ✨ use and cache imports for autocomplete (#1456) * ✨ use and cache imports for autocomplete * fix tsc * team analytics * apply control plane settings * workos auth * ide protocol get session info * UI for auth * profile switching * small fixes * updates * refresh tokens * updates * fix tsc errs * model select in toolbar to make room for profile selector * prod client id * link to prod URL * internal beta option * profiles change listener --------- Co-authored-by: Patrick Erichsen <[email protected]> Co-authored-by: Priyash <[email protected]> Co-authored-by: Jonah Wagner <[email protected]> Co-authored-by: YohannZe <[email protected]> Co-authored-by: Dan Dascalescu <[email protected]> * temporary patch for type errs --------- Co-authored-by: Patrick Erichsen <[email protected]> Co-authored-by: Priyash <[email protected]> Co-authored-by: Jonah Wagner <[email protected]> Co-authored-by: YohannZe <[email protected]> Co-authored-by: Dan Dascalescu <[email protected]> * skip extension tests * JetBrains status bar spinner for autocomplete * Remove unused images * partial accept jetbrains * fix double-rendering of jetbrains completions * fix offset of multi-line jetbrains completions * enable/disable actions * upgrade to version 0.0.54 * fix: wrap editor buttons when out of space (#1727) * Add .continuerc file to config directory on activation to prevent it's indexing. (#1733) * Updated the content links that were deprecated in the document (#1709) Co-authored-by: Ihe Fan <[email protected]> * Nate/dev (#1739) * JetBrains status bar spinner for autocomplete * Remove unused images * partial accept jetbrains * fix double-rendering of jetbrains completions * fix offset of multi-line jetbrains completions * enable/disable actions * upgrade to version 0.0.54 * llm-info package * small profile switching improvements * instruct cmd+I not to leave placeholders * @ files in context-providers docs * onboarding fix * update jetbrains ci to build gui * feat: single default quick pick to edit (#1743) * feat: single default quick pick to edit * Update quick-actions.md * Update quick-actions.md * use defaultQuickAction * quick fixes * fix: handle line removal diff (#1744) * fix: handle line removal diff * remove comments * Configurable `maxChunkSize` for embedding providers (#1746) * Add `maxChunkSize` to `EmbeddingsProvider` * Add `maxChunkSize` to schema * add support for docs via config (#1594) * mistral mamba (#1748) * 🐍 mistral mamba * autoscale retrieval based on context length * autoscale retrieval based on context length * fix input box movement * update jetbrains build * test: add myers diff tests (#1754) * feat: enhance help center (#1755) * feat: enhance help center * Update help.tsx * feat: add azure provider config (#1764) * autocomplete reload fix * logout of control plane * Update QuickEditQuickPick.ts (#1772) * Update QuickEditQuickPick.ts * updates * Update QuickEditQuickPick.ts * pass refreshed access token to continue-proxy model * test: add dir read check for walkDir (#1773) * test: add dir read check for walkDir * Update ignore.ts * Update walkDir.test.ts * Update walkDir.test.ts * gpt-4o-mini * gpt-4o-mini * gpt4omini to ui selector * fix: layout alignment (#1779) * fix: delete old docs index on force re-index (#1778) * add "Codebase Force Re-Index" command (#1757) * Add `HuggingFaceTEIReranker` (#1711) * Add `HuggingFaceTEIReranker` * Add `huggingface-tei` to `config_schema.json` * update package.json version * update config schemas * skip test failing only due to type error * fix: convert `walkDir` to an async generator (#1783) * walkdir to async generator * add yields * handle ignore files * Update CodebaseIndexer.ts * Update walkDir.ts * chore: bump VS Code ext version * fix completions support in ContinueProxy * add test for walkDir * IAnalyticsProvider * feat: crawl `.mdx` docs * update workspaces on session info change * rename from profile to workspace (user-facing) * update config schema files * feat: improve chat thread ui for better readability (#1786) * add "language" template variable for autocomplete * Enable debug logs (#1800) * Add an enableDebugLogs flag * Send logs to VSCode * Refresh index fixes (#1795) * Use the resultType given to markComplete This fixes an issue where if there were multiple result types in itemToAction such as an update with UpdateNewVersion and UpdateOldVersion, only the UpdateOldVersion would be hit (which is a noop) and the UpdateNewVersion would never be fired, causing us to never update the timestamp of the tag_catalog. * Add a Compute and UpdateLastUpdated to refreshIndex Removes the ability to insert duplicate rows if we're just computing the result. Instead we replace the existing row instead. * Don't insert compute tags They are REPLACEd in markComplete now. * docs: change page heading to model providers (#1684) * feat: allow JetBrains users to index docs (#1797) * feat: allow JetBrains users to index docs * update docs service * update global context * throw error popup on jetbrains + transformers * update toast notifications * update typings * fix tsc errors * Index on file change (#1785) * Reload the submenu items when the context provider data is refreshed * update version * Just call refreshSubmenuItems * remove log statements * cleanup * Remove the Promise declaration * Copy currentFiles to a new dict since we're going to mutate it Don't mutate the caller's currentFiles unexpectedly * Remove reIndexFile and just call index/forceReIndex * We MUST await the refreshCodebaseIndex call * Expose send on core * remove unused import * Reindex the workspaces on save * Call core.send Ideally, we can implement externalRequest on the webview later so we don't have to expose messenger to the VSCode extension * Always refreshSubmenuItems in refreshCodebaseIndex * whitespace * Change messenger back to private * Add Pause Codebase On Start setting (#1788) * Add a skipInitialSync function * Add pauseInitialCodebaseIndex * docs * version bump * Rename to pauseCodebaseIndexOnStart * Un-shadow file context provider (#1801) * allow FileContextProvider to handle files * remove commented-out lines * chore: add telemetry to alt-enter (#1805) * Set the indexProgress indicator to paused on startup if pauseCodebaseIndexOnStart is set (#1804) * Fix Input Toolbar layout (#1792) * set to flex flex-column * Remove fixed height and always show the StyledDivs content to hold its size * Add a Delete Message button to the StepContainer (#1790) * Add a delete button * add a delete message action to the GUI * Fix off by one error * format * This index should be less than length * Update to trash icon * Simplify walkDir(...) and improve performance by roughly 10x in larger repos (#1806) The performance of WalkDir is improved by replacing the recursive DFS with a stack based implementation (less memory in-use during peak exploration). In addition, some unnecessary flags and options were removed which allowed the code to be overall simplified. Much less rule matching is occuring with the same files returned. Some performance results on my linux host: small repo: - 649 files returned by walkDir() - 9 .gitignore files - walkDir() old vs new duration: 918 ms to 143 ms medium sized repo: - 9271 returned by walkDir() - 35 .gitignore files - walkDir() old vs new duration: 10,886 ms to 970ms large sized repo: - 197,900 files returned by walkDir() - 929 .gitignore files - walkDir() old vs new duration: 498,151 ms to 37,353 ms Co-authored-by: Rob Leidle <[email protected]> * modified assistant indicator in UI * update package.json version --------- Co-authored-by: Patrick Erichsen <[email protected]> Co-authored-by: Priyash <[email protected]> Co-authored-by: Jonah Wagner <[email protected]> Co-authored-by: YohannZe <[email protected]> Co-authored-by: Dan Dascalescu <[email protected]> Co-authored-by: Rob Leidle <[email protected]> Co-authored-by: Rob Leidle <[email protected]> Co-authored-by: inimaz <[email protected]> Co-authored-by: inimaz <[email protected]> Co-authored-by: Anaël Bonnafous <[email protected]> Co-authored-by: Huy Tran <[email protected]> Co-authored-by: Gabriel Gordbegli <[email protected]> Co-authored-by: Raven-1027 <[email protected]> Co-authored-by: Ihe Fan <[email protected]> Co-authored-by: Lukas Kreussel <[email protected]> Co-authored-by: Josh Vera <[email protected]> Co-authored-by: Peter Zaback <[email protected]>
1 parent e58fddc commit 82db97e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1639
-3138
lines changed

binary/package-lock.json

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/autocomplete/completionProvider.ts

+1
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,7 @@ export class CompletionProvider {
581581
suffix,
582582
filename,
583583
reponame,
584+
language: lang.name,
584585
});
585586
} else {
586587
// Let the template function format snippets

core/autocomplete/languages.ts

+24
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { LineFilter } from "./lineStream";
22

33
export interface AutocompleteLanguageInfo {
4+
name: string;
45
topLevelKeywords: string[];
56
singleLineComment: string;
67
endOfLine: string[];
@@ -14,13 +15,15 @@ export interface AutocompleteLanguageInfo {
1415

1516
// TypeScript
1617
export const Typescript = {
18+
name: "TypeScript",
1719
topLevelKeywords: ["function", "class", "module", "export", "import"],
1820
singleLineComment: "//",
1921
endOfLine: [";"],
2022
};
2123

2224
// Python
2325
export const Python = {
26+
name: "Python",
2427
// """"#" is for .ipynb files, where we add '"""' surrounding markdown blocks.
2528
// This stops the model from trying to complete the start of a new markdown block
2629
topLevelKeywords: ["def", "class", '"""#'],
@@ -30,55 +33,63 @@ export const Python = {
3033

3134
// Java
3235
export const Java = {
36+
name: "Java",
3337
topLevelKeywords: ["class", "function"],
3438
singleLineComment: "//",
3539
endOfLine: [";"],
3640
};
3741

3842
// C++
3943
export const Cpp = {
44+
name: "C++",
4045
topLevelKeywords: ["class", "namespace", "template"],
4146
singleLineComment: "//",
4247
endOfLine: [";"],
4348
};
4449

4550
// C#
4651
export const CSharp = {
52+
name: "C#",
4753
topLevelKeywords: ["class", "namespace", "void"],
4854
singleLineComment: "//",
4955
endOfLine: [";"],
5056
};
5157

5258
// C
5359
export const C = {
60+
name: "C",
5461
topLevelKeywords: ["if", "else", "while", "for", "switch", "case"],
5562
singleLineComment: "//",
5663
endOfLine: [";"],
5764
};
5865

5966
// Scala
6067
export const Scala = {
68+
name: "Scala",
6169
topLevelKeywords: ["def", "val", "var", "class", "object", "trait"],
6270
singleLineComment: "//",
6371
endOfLine: [";"],
6472
};
6573

6674
// Go
6775
export const Go = {
76+
name: "Go",
6877
topLevelKeywords: ["func", "package", "import", "type"],
6978
singleLineComment: "//",
7079
endOfLine: [],
7180
};
7281

7382
// Rust
7483
export const Rust = {
84+
name: "Rust",
7585
topLevelKeywords: ["fn", "mod", "pub", "struct", "enum", "trait"],
7686
singleLineComment: "//",
7787
endOfLine: [";"],
7888
};
7989

8090
// Haskell
8191
export const Haskell = {
92+
name: "Haskell",
8293
topLevelKeywords: [
8394
"data",
8495
"type",
@@ -95,48 +106,55 @@ export const Haskell = {
95106

96107
// PHP
97108
export const PHP = {
109+
name: "PHP",
98110
topLevelKeywords: ["function", "class", "namespace", "use"],
99111
singleLineComment: "//",
100112
endOfLine: [";"],
101113
};
102114

103115
// Ruby on Rails
104116
export const RubyOnRails = {
117+
name: "Ruby on Rails",
105118
topLevelKeywords: ["def", "class", "module"],
106119
singleLineComment: "#",
107120
endOfLine: [],
108121
};
109122

110123
// Swift
111124
export const Swift = {
125+
name: "Swift",
112126
topLevelKeywords: ["func", "class", "struct", "import"],
113127
singleLineComment: "//",
114128
endOfLine: [";"],
115129
};
116130

117131
// Kotlin
118132
export const Kotlin = {
133+
name: "Kotlin",
119134
topLevelKeywords: ["fun", "class", "package", "import"],
120135
singleLineComment: "//",
121136
endOfLine: [";"],
122137
};
123138

124139
// Ruby
125140
export const Ruby = {
141+
name: "Ruby",
126142
topLevelKeywords: ["class", "module", "def"],
127143
singleLineComment: "#",
128144
endOfLine: [],
129145
};
130146

131147
// Clojure
132148
export const Clojure = {
149+
name: "Clojure",
133150
topLevelKeywords: ["def", "fn", "let", "do", "if", "defn", "ns", "defmacro"],
134151
singleLineComment: ";",
135152
endOfLine: [],
136153
};
137154

138155
// Julia
139156
export const Julia = {
157+
name: "Julia",
140158
topLevelKeywords: [
141159
"function",
142160
"macro",
@@ -155,6 +173,7 @@ export const Julia = {
155173

156174
// F#
157175
export const FSharp = {
176+
name: "F#",
158177
topLevelKeywords: [
159178
"let",
160179
"type",
@@ -173,6 +192,7 @@ export const FSharp = {
173192

174193
// R
175194
export const R = {
195+
name: "R",
176196
topLevelKeywords: [
177197
"function",
178198
"if",
@@ -189,13 +209,15 @@ export const R = {
189209

190210
// Dart
191211
export const Dart = {
212+
name: "Dart",
192213
topLevelKeywords: ["class", "import", "void", "enum"],
193214
singleLineComment: "//",
194215
endOfLine: [";"],
195216
};
196217

197218
// Solidity
198219
export const Solidity = {
220+
name: "Solidity",
199221
topLevelKeywords: [
200222
"contract",
201223
"event",
@@ -218,6 +240,7 @@ export const Solidity = {
218240

219241
// YAML
220242
export const YAML: AutocompleteLanguageInfo = {
243+
name: "YAML",
221244
topLevelKeywords: [],
222245
singleLineComment: "#",
223246
endOfLine: [],
@@ -258,6 +281,7 @@ export const YAML: AutocompleteLanguageInfo = {
258281
};
259282

260283
export const Markdown: AutocompleteLanguageInfo = {
284+
name: "Markdown",
261285
topLevelKeywords: [],
262286
singleLineComment: "",
263287
endOfLine: [],

core/config/ConfigHandler.ts

+50-32
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
import { ControlPlaneClient } from "../control-plane/client.js";
1+
import {
2+
ControlPlaneClient,
3+
ControlPlaneSessionInfo,
4+
} from "../control-plane/client.js";
25
import {
36
BrowserSerializedContinueConfig,
47
ContinueConfig,
@@ -118,44 +121,20 @@ export class ConfigHandler {
118121
return this.profiles.filter((p) => p.profileId !== this.selectedProfileId);
119122
}
120123

121-
constructor(
122-
private readonly ide: IDE,
123-
private ideSettingsPromise: Promise<IdeSettings>,
124-
private readonly writeLog: (text: string) => Promise<void>,
125-
private readonly controlPlaneClient: ControlPlaneClient,
126-
) {
127-
this.ide = ide;
128-
this.ideSettingsPromise = ideSettingsPromise;
129-
this.writeLog = writeLog;
130-
131-
// Set local profile as default
132-
const localProfileLoader = new LocalProfileLoader(
133-
ide,
134-
ideSettingsPromise,
135-
writeLog,
136-
);
137-
this.profiles = [new ProfileLifecycleManager(localProfileLoader)];
138-
this.selectedProfileId = localProfileLoader.profileId;
139-
140-
// Always load local profile immediately in case control plane doesn't load
141-
try {
142-
this.loadConfig();
143-
} catch (e) {
144-
console.error("Failed to load config: ", e);
145-
}
146-
147-
// Load control plane profiles
148-
// TODO
124+
private async fetchControlPlaneProfiles() {
149125
// Get the profiles and create their lifecycle managers
150126
this.controlPlaneClient.listWorkspaces().then(async (workspaces) => {
127+
this.profiles = this.profiles.filter(
128+
(profile) => profile.profileId === "local",
129+
);
151130
workspaces.forEach((workspace) => {
152131
const profileLoader = new ControlPlaneProfileLoader(
153132
workspace.id,
154133
workspace.name,
155134
this.controlPlaneClient,
156-
ide,
157-
ideSettingsPromise,
158-
writeLog,
135+
this.ide,
136+
this.ideSettingsPromise,
137+
this.writeLog,
159138
this.reloadConfig.bind(this),
160139
);
161140
this.profiles.push(new ProfileLifecycleManager(profileLoader));
@@ -184,6 +163,36 @@ export class ConfigHandler {
184163
});
185164
}
186165

166+
constructor(
167+
private readonly ide: IDE,
168+
private ideSettingsPromise: Promise<IdeSettings>,
169+
private readonly writeLog: (text: string) => Promise<void>,
170+
private controlPlaneClient: ControlPlaneClient,
171+
) {
172+
this.ide = ide;
173+
this.ideSettingsPromise = ideSettingsPromise;
174+
this.writeLog = writeLog;
175+
176+
// Set local profile as default
177+
const localProfileLoader = new LocalProfileLoader(
178+
ide,
179+
ideSettingsPromise,
180+
writeLog,
181+
);
182+
this.profiles = [new ProfileLifecycleManager(localProfileLoader)];
183+
this.selectedProfileId = localProfileLoader.profileId;
184+
185+
// Always load local profile immediately in case control plane doesn't load
186+
try {
187+
this.loadConfig();
188+
} catch (e) {
189+
console.error("Failed to load config: ", e);
190+
}
191+
192+
// Load control plane profiles
193+
this.fetchControlPlaneProfiles();
194+
}
195+
187196
async setSelectedProfile(profileId: string) {
188197
this.selectedProfileId = profileId;
189198
const newConfig = await this.loadConfig();
@@ -209,6 +218,15 @@ export class ConfigHandler {
209218
this.reloadConfig();
210219
}
211220

221+
updateControlPlaneSessionInfo(
222+
sessionInfo: ControlPlaneSessionInfo | undefined,
223+
) {
224+
this.controlPlaneClient = new ControlPlaneClient(
225+
Promise.resolve(sessionInfo),
226+
);
227+
this.fetchControlPlaneProfiles();
228+
}
229+
212230
private profilesListeners: ((profiles: ProfileDescription[]) => void)[] = [];
213231
onDidChangeAvailableProfiles(
214232
listener: (profiles: ProfileDescription[]) => void,

core/context/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import type {
66
IContextProvider,
77
LoadSubmenuItemsArgs,
88
} from "../index.js";
9+
910
export abstract class BaseContextProvider implements IContextProvider {
1011
options: { [key: string]: any };
1112

0 commit comments

Comments
 (0)