Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
22c2353
add ignore
abdlmnn May 7, 2026
7db7619
add npmrc
abdlmnn May 7, 2026
b500a05
add Prettier configuration and ignore file
abdlmnn May 7, 2026
4bd0a3f
add eslint config
abdlmnn May 7, 2026
8c6c78e
add package
abdlmnn May 7, 2026
3de0bf8
add pnpm lock and workspace
abdlmnn May 7, 2026
238c9b6
add turbo
abdlmnn May 7, 2026
c2ab037
add config launch extension
abdlmnn May 7, 2026
392e1d2
add settings config prisma
abdlmnn May 7, 2026
b5fdfa1
add tasks config run and compile
abdlmnn May 7, 2026
03997ea
add extension gitignore
abdlmnn May 7, 2026
4481a1d
add ignore vscode
abdlmnn May 7, 2026
66fb821
add vsix
abdlmnn May 7, 2026
9086519
add eslint config in extension
abdlmnn May 7, 2026
2656922
add license in extension
abdlmnn May 7, 2026
15e5e3f
add config nextjs
abdlmnn May 7, 2026
f267019
add package extension
abdlmnn May 7, 2026
0c0f2a7
add document of vs code extension
abdlmnn May 7, 2026
66415a6
add config extension
abdlmnn May 7, 2026
61d620f
add tsconfig
abdlmnn May 7, 2026
6e8e2ea
add fav icon
abdlmnn May 7, 2026
d29cbab
add global and page module css
abdlmnn May 7, 2026
c56495c
add font geist
abdlmnn May 7, 2026
bfb67a1
add custom layout
abdlmnn May 7, 2026
43b9977
add page
abdlmnn May 7, 2026
f180e65
add public
abdlmnn May 7, 2026
47df723
add custom constants
abdlmnn May 7, 2026
c2f1d1a
add main extension in vscode
abdlmnn May 7, 2026
36419e2
add custom types
abdlmnn May 7, 2026
8b7df14
add activity heartbeat
abdlmnn May 7, 2026
5b4e3a4
add gutterdecoration
abdlmnn May 7, 2026
f6e7d8a
add memorystore
abdlmnn May 7, 2026
3f86512
add remember selection command
abdlmnn May 7, 2026
97327dd
add statusbar timer
abdlmnn May 7, 2026
f5b4f6a
add format duration
abdlmnn May 7, 2026
3fe15ab
add gitignore web
abdlmnn May 7, 2026
4bcbffe
add eslint config web
abdlmnn May 7, 2026
c0f689d
add config nextjs
abdlmnn May 7, 2026
4208628
add package web
abdlmnn May 7, 2026
1ac66d2
add documentation in web
abdlmnn May 7, 2026
f4e3ed8
add tsconfig
abdlmnn May 7, 2026
bbbdcef
add fav icon
abdlmnn May 7, 2026
c1d032e
add global and dashboard css
abdlmnn May 7, 2026
2bb6c31
add layout
abdlmnn May 7, 2026
b3a862a
add page
abdlmnn May 7, 2026
bf0f44b
add font geist
abdlmnn May 7, 2026
cdc5cc4
add dashboard page
abdlmnn May 7, 2026
29e8f35
add custom data
abdlmnn May 7, 2026
6a8a211
add custom types
abdlmnn May 7, 2026
4fa7534
add public
abdlmnn May 7, 2026
88049ac
add custom package types
abdlmnn May 7, 2026
3eed079
add custom @codbit types
abdlmnn May 7, 2026
6bfa72d
add env example
abdlmnn May 7, 2026
2ffca4a
add package server
abdlmnn May 7, 2026
86a944d
add document in server
abdlmnn May 7, 2026
8bddd5f
add docker file and ignore
abdlmnn May 7, 2026
f5e2f38
add schema prisma
abdlmnn May 7, 2026
65cc30d
add app
abdlmnn May 7, 2026
5403cbe
add index
abdlmnn May 7, 2026
0012b4e
add custom env
abdlmnn May 7, 2026
2721e7a
add custom prisma
abdlmnn May 7, 2026
e513640
add api key auth
abdlmnn May 7, 2026
67e33cf
add async handler
abdlmnn May 7, 2026
e4c2764
add syncRoutes
abdlmnn May 7, 2026
ad56829
add sync service
abdlmnn May 7, 2026
6b060e7
add docker compose
abdlmnn May 7, 2026
e18ad2a
add continuous integration
abdlmnn May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: CI

on:
push:
branches: ["main", "monorepo-setup"]
pull_request:
branches: ["main"]

jobs:
quality:
runs-on: ubuntu-latest
timeout-minutes: 20

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9.0.0

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Lint
run: npm run lint

- name: Type check
run: npm run check-types

- name: Build extension VSIX
run: pnpm --filter extension package:vsix
41 changes: 41 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# Dependencies
node_modules
.pnp
.pnp.js

# Local env files
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
server/.env

# Testing
coverage

# Turbo
.turbo

# Vercel
.vercel

# Build Outputs
.next/
out/
build
dist
server/prisma/*.db
server/prisma/*.db-journal


# Debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Misc
.DS_Store
*.pem
Empty file added .npmrc
Empty file.
6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules
.next
dist
build
coverage
pnpm-lock.yaml
6 changes: 6 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"semi": true,
"singleQuote": false,
"trailingComma": "es5",
"printWidth": 100
}
18 changes: 18 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Codbit Extension",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}/apps/extension"
],
"outFiles": [
"${workspaceFolder}/apps/extension/dist/**/*.js"
],
"preLaunchTask": "codbit-ext: watch"
}
]
}
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"prisma.pinToPrisma6": true
}
24 changes: 24 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "codbit-ext: watch",
"type": "npm",
"script": "watch",
"path": "apps/extension",
"isBackground": true,
"problemMatcher": "$tsc-watch",
"presentation": {
"reveal": "silent",
"panel": "dedicated"
}
},
{
"label": "codbit-ext: compile",
"type": "npm",
"script": "compile",
"path": "apps/extension",
"problemMatcher": "$tsc"
}
]
}
36 changes: 36 additions & 0 deletions apps/extension/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# env files (can opt-in for commiting if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
15 changes: 15 additions & 0 deletions apps/extension/.vscodeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
.vscode/**
.next/**
.turbo/**
app/**
public/**
next.config.js
eslint.config.js
tsconfig.json
tsconfig.extension.json
src/**
**/*.map
**/*.tsbuildinfo
next-env.d.ts
.gitignore
node_modules/**
21 changes: 21 additions & 0 deletions apps/extension/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
43 changes: 43 additions & 0 deletions apps/extension/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
## Codbit VS Code Extension

This package contains the actual VS Code extension runtime (`src/extension.ts`).

### Run in Extension Host

1. From repo root, install dependencies:
- `pnpm install`
2. Compile once:
- `pnpm --filter extension compile`
3. In VS Code, press `F5` and choose `Run Codbit Extension`.
4. In the new Extension Development Host window:
- Open any file
- Highlight code
- Right click and select `Codbit: Remember this...`

### Useful scripts

- `pnpm --filter extension watch`: watch/compile `src` to `dist`
- `pnpm --filter extension compile`: build `dist/extension.js`
- `pnpm --filter extension check-types`: type-check extension runtime
- `pnpm --filter extension lint`: lint extension package
- `pnpm --filter extension package:vsix`: build `apps/extension/codbit.vsix`
- `pnpm --filter extension publish:check`: lint + type-check + package preflight
- `pnpm --filter extension publish:patch|minor|major`: publish to Marketplace with version bump

### Notes

- Launch/task configs are in `.vscode/launch.json` and `.vscode/tasks.json`.
- Output is generated to `apps/extension/dist`.

### Publish to VS Marketplace

1. Create a Personal Access Token in Azure DevOps with Marketplace `Manage` scope.
2. In your terminal, set token:
- PowerShell: `$env:VSCE_PAT="<your-token>"`
- Git Bash: `export VSCE_PAT="<your-token>"`
3. Run one of:
- `pnpm --filter extension publish:patch`
- `pnpm --filter extension publish:minor`
- `pnpm --filter extension publish:major`

`vsce` will use `VSCE_PAT` automatically.
Binary file added apps/extension/app/favicon.ico
Binary file not shown.
Binary file added apps/extension/app/fonts/GeistMonoVF.woff
Binary file not shown.
Binary file added apps/extension/app/fonts/GeistVF.woff
Binary file not shown.
50 changes: 50 additions & 0 deletions apps/extension/app/globals.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
:root {
--background: #ffffff;
--foreground: #171717;
}

@media (prefers-color-scheme: dark) {
:root {
--background: #0a0a0a;
--foreground: #ededed;
}
}

html,
body {
max-width: 100vw;
overflow-x: hidden;
}

body {
color: var(--foreground);
background: var(--background);
}

* {
box-sizing: border-box;
padding: 0;
margin: 0;
}

a {
color: inherit;
text-decoration: none;
}

.imgDark {
display: none;
}

@media (prefers-color-scheme: dark) {
html {
color-scheme: dark;
}

.imgLight {
display: none;
}
.imgDark {
display: unset;
}
}
31 changes: 31 additions & 0 deletions apps/extension/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import type { Metadata } from "next";
import localFont from "next/font/local";
import "./globals.css";

const geistSans = localFont({
src: "./fonts/GeistVF.woff",
variable: "--font-geist-sans",
});
const geistMono = localFont({
src: "./fonts/GeistMonoVF.woff",
variable: "--font-geist-mono",
});

export const metadata: Metadata = {
title: "Create Next App",
description: "Generated by create next app",
};

export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en">
<body className={`${geistSans.variable} ${geistMono.variable}`}>
{children}
</body>
</html>
);
}
Loading
Loading