Contributing to Open Source ๐ since mid 2019.
The V Programming Language
My first open-source organization on which I started to contribute to and done a lot of significant things there. Check out my commits and PRs done by me there!
Highlights
- Fixed several checker, parser, scanner, and code generation-related issues.
- Implemented features like
operator overloading
,syntax highlighting for v doc
,match branch range expressions with constants
,non-string map keys
, support for&&=
and||=
operators for boolean, etc. - Documented and developed several standard library features.
Limited Operator Overloading
struct Vec {
x int
y int
}
fn (a Vec) str() string {
return '{${a.x}, ${a.y}}'
}
fn (a Vec) + (b Vec) Vec {
return Vec{a.x + b.x, a.y + b.y}
}
fn (a Vec) - (b Vec) Vec {
return Vec{a.x - b.x, a.y - b.y}
}
fn main() {
a := Vec{2, 3}
b := Vec{4, 5}
mut c := Vec{1, 2}
println(a + b) // "{6, 8}"
println(a - b) // "{-2, -2}"
c += a
//^^ autogenerated from + overload
println(c) // "{3, 5}"
}
Implemented in PRs #7737, #774, 8030, 8067, #8086, #9529 and #9529 and more
Match with Const Expr
const start = 1
const end = 10
c := 2
num := match c {
start...end {
1000
}
else {
0
}
}
println(num)
// 1000
Implemented in PRs #16526 and #19572
&&=
and ||=
operators
&&=
is shorthand for flag = flag && flag2
, same for ||=
mut success := true
for mesh in meshes {
success &&= renderer.draw_skinner_mesh(mesh, app.skinning_m, transform)
// Same as success = succes && renderer.draw_skinner_mesh(mesh, app.skinning_m, transform)
}
Implemented in PRs #21678 and in #21684
Charm
Charm is an organization where the command line is made glamorous ๐
I am an active contributor and implemented features there.
vhs
Write terminal GIFs as code for integration testing and demoing your CLI tools.
Implemented Copy + Paste command which copies the given text and paste it in the terminal.
Demo
huh
A simple, powerful library for building interactive forms and prompts in the terminal.
- Implemented
Form.WithTimeout(duration)
in #276 which cancels the form in the given duration and closes #166. - Implemented
Form.WithInput(reader)
in #271 which setio.Reader
to the input form and closes #270
Nixpkgs
Nixpkgs is a collection of over 100,000 software packages that can be installed with the Nix package manager. It also implements NixOS, a purely-functional Linux distribution.
Learning nix and working as a maintainer for The V Programming Language package since November 2023.
Catppuccin
A community-driven color scheme meant for coding, designing, and much more! ๐๏ธ
A maintainer for The V Programming Language port since October 2023.
V By Examples
V by Example is a direct introduction to V by using annotated program examples.
- Translated in eight languages.
- One of the maintainers of the project
- Covers a lot of topics of V.
GitHub CLI
GitHubโs official command line tool.
- Fixed an error related to
gh install
not giving an error if extension already installed with a clear message - Implemented in PR #8211
- Feature released in v2.38.0
Encore
Encore is the Backend Development Platform purpose-built to help you create event-driven and distributed systems.
PS: To see more of my open-source work, check the GitHub account!