• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

charmbracelet / bubbles
44%
master: 45%

Build:
Build:
LAST BUILD BRANCH: ci/sync-dependabot-config
DEFAULT BRANCH: master
Repo Added 19 Oct 2020 04:14AM UTC
Token IjtpKoTVFkXN77AHAX9apAGfcu09KIyOR regen
Build 1903 Last
Files 21
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH wcwidth
branch: wcwidth
CHANGE BRANCH
x
Reset
Sync Branches
  • wcwidth
  • 20220829-move-begin-end
  • 20220830-ta
  • 20220903-cursor
  • 20221002-key
  • 20221007-paginator
  • 20221007-textinput-bindings
  • 20230124-paste-nl
  • 20230205-textarea-fix
  • 20230422-textarea-limits
  • alt-key-bindings-up-down
  • area
  • atomic-ids
  • autocomplete
  • avoid-string-realloc
  • bracketed-paste
  • bug/831/slow-textarea-performance
  • bug/table-viewport
  • bugfix/renderOffByOne
  • bump-deps
  • button
  • calendar-component
  • ci
  • ci/maintenance
  • ci/sync-dependabot-config
  • codepwners
  • color-profile
  • columnsign
  • const-wheel-delta
  • constructors
  • ctrl-h-textinput
  • cursor-data-race
  • custom-filter
  • customizable-validation
  • dateTimePicker
  • delete-word
  • dependabot
  • dependabot-time
  • dependabot-weekly
  • dependabot/github_actions/actions/checkout-3
  • dependabot/github_actions/actions/checkout-4
  • dependabot/github_actions/actions/checkout-5
  • dependabot/github_actions/actions/setup-go-3
  • dependabot/github_actions/actions/setup-go-4
  • dependabot/github_actions/actions/setup-go-5
  • dependabot/github_actions/all-167a898cab
  • dependabot/github_actions/golangci/golangci-lint-action-3
  • dependabot/github_actions/golangci/golangci-lint-action-4
  • dependabot/github_actions/golangci/golangci-lint-action-5
  • dependabot/github_actions/golangci/golangci-lint-action-6
  • dependabot/go_modules/all-139fc94f88
  • dependabot/go_modules/all-1c72dfb863
  • dependabot/go_modules/all-461c774cda
  • dependabot/go_modules/all-8c627fb926
  • dependabot/go_modules/all-f11ff2c6ad
  • dependabot/go_modules/github.com/aymanbagabas/go-udiff-0.3.1
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.22.1
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.23.0
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.23.1
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.23.2
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.24.0
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.24.2
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.25.0
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.26.0
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.26.1
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.26.2
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.26.4
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.26.5
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.26.6
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.27.0
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-0.27.1
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.0.0
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.1.0
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.1.1
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.2.0
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.2.1
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.2.2
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.2.3
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.2.4
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.3.4
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.3.5
  • dependabot/go_modules/github.com/charmbracelet/bubbletea-1.3.6
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.10.0
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.11.1
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.12.1
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.13.0
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.13.1
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.6.0
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.7.0
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.7.1
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.8.0
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.9.0
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-0.9.1
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-1.0.0
  • dependabot/go_modules/github.com/charmbracelet/lipgloss-1.1.0
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.1.2
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.1.3
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.1.4
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.10.1
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.3.0
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.3.1
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.3.2
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.4.2
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.4.5
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.5.1
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.5.2
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.6.0
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.7.0
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.8.0
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.9.2
  • dependabot/go_modules/github.com/charmbracelet/x/ansi-0.9.3
  • dependabot/go_modules/github.com/mattn/go-runewidth-0.0.14
  • dependabot/go_modules/github.com/mattn/go-runewidth-0.0.15
  • dependabot/go_modules/github.com/mattn/go-runewidth-0.0.16
  • dependabot/go_modules/github.com/muesli/termenv-0.14.0
  • dependabot/go_modules/github.com/muesli/termenv-0.15.0
  • dependabot/go_modules/github.com/muesli/termenv-0.15.1
  • dependabot/go_modules/github.com/muesli/termenv-0.15.2
  • dependabot/go_modules/github.com/muesli/termenv-0.16.0
  • dependabot/go_modules/github.com/rivo/uniseg-0.4.6
  • dependabot/go_modules/github.com/rivo/uniseg-0.4.7
  • dependabot/go_modules/github.com/sahilm/fuzzy-0.1.1
  • deprecate-cursor-style
  • develop
  • disable-quit
  • disabled-files
  • divisionByZero
  • dlvhdr/tree-bubble
  • docs
  • docs-validatefunc
  • docs/custom-bubbles-psa
  • dont-show-suggestions-unless-focused
  • drop-naked-returns
  • dualPaneModel
  • empty
  • enhancements
  • eob-align
  • expose_update_suggestions
  • feat-list-is-filtered
  • feat/custom-status-bar-title
  • feat/new-spinners
  • feat/selection
  • feat/table
  • feat/table/set-cursor
  • feat/text-area-multiline-placeholder
  • feature/593-improve-table-tests
  • feature/GetCursorChar
  • feature/fix-list-cursor-pos
  • feature/fix-list-cursor-pos-v2
  • feature/i236-viewport-horizontal-scroll
  • feature/misc-viewport-fixes
  • feature/navigation
  • feature/tableMouseSupport
  • feature/textarea-yoffset-scrolling
  • feature/v2-progress-blend
  • feature/v2-scrollbar
  • feature/v2-textarea-pagination
  • feature/v2-textarea-pg-and-view
  • filepicker
  • filepicker-compact
  • filepicker-edits
  • filepicker-readme
  • filter-text
  • fix-39
  • fix-cursor-SetMode
  • fix-godocs
  • fix-height-calc-method
  • fix-help-center
  • fix-input-set-value
  • fix-key-examples
  • fix-key-unbound-is-not-enabled
  • fix-list
  • fix-negative-repeat
  • fix-out-of-bounds-err
  • fix-prealloc
  • fix-progressbar-default-spring-option
  • fix-row-styles
  • fix-stylefunc-inherit
  • fix-textinput
  • fix-textinput-currentsuggest
  • fix-textinput-setvalue-cursor
  • fix-timer-stop
  • fix/eob-without-line-numbers
  • fix/issue-502-correctly-truncate-escaped-table-cells
  • fix/list-update-bindings-on-setSize
  • fix/progress-colors
  • fix/reset-blink
  • fix/table-allocation
  • fix/table-cursor-out-of-bounds
  • fix/table-height
  • fix/table-keymap-implement-help
  • fix/table-keys
  • fix/text-area-set-width
  • fix_full_help
  • fix_padding_in_titlebar
  • focus-blur
  • focus-blur-syntax
  • fuzzy
  • github-workflow
  • github-workflows
  • go-bump-118
  • godocs-deprecate
  • goodbye-spinner-lifetimes
  • goreleaser
  • height
  • help-fix-sep
  • help-fix-sep-test
  • help-key-bubble
  • highlight
  • housekeeping
  • idomatic-stuff
  • ime
  • improve-docs
  • indeterminate_progress
  • input-cursor
  • input-real-cursor
  • input-validation
  • insert-item-fix
  • insert-key
  • internal-cursor
  • issue-template
  • key-changes-cherry-picked
  • key-matches-multiarg
  • key-unbound-is-not-enabled
  • key/generic-matches
  • layouts
  • lint
  • lint-ci
  • lint2
  • linter
  • linter-rules
  • linters
  • lipgloss
  • lipgloss-renderer
  • list
  • list-bubble
  • list-default-style
  • list-faq
  • list-lint-fixes
  • list-new-rework
  • list-reduce-allocs-in-filter-items
  • live-progress
  • master
  • misc-fixes
  • ml-base-style-width
  • ml-textarea-styling
  • multiline-textinput
  • new-spinner-with-option
  • nextprompt
  • no-items
  • no-items-found
  • nolint-mnd
  • offsetViewportFrame
  • on-first-page
  • original-filtered-index
  • paginator
  • paginator-options
  • paste
  • patch-1
  • performance-scrollfix
  • periods-of-ellipsis
  • picker-height
  • placeholder-text-render
  • progress
  • progress-anim
  • progress-anim-threshold
  • progress-is-complete
  • progress-lipgloss
  • progress-model
  • progress-readme
  • progress-update
  • quit
  • readme
  • readme-badges
  • readme-footer
  • readme-help
  • readme-images
  • readme-key-fix
  • readme-table
  • readme-update
  • refs/tags/v0.10.0
  • refs/tags/v0.10.1
  • refs/tags/v0.10.2
  • refs/tags/v0.10.3
  • refs/tags/v0.11.0
  • refs/tags/v0.12.0
  • refs/tags/v0.13.0
  • refs/tags/v0.14.0
  • refs/tags/v0.14.1
  • refs/tags/v0.15.0
  • refs/tags/v0.16.0
  • refs/tags/v0.16.1
  • refs/tags/v0.17.0
  • refs/tags/v0.17.1
  • refs/tags/v0.18.0
  • refs/tags/v0.19.0
  • refs/tags/v0.20.0
  • refs/tags/v0.21.0
  • refs/tags/v0.7.1
  • refs/tags/v0.7.2
  • refs/tags/v0.7.3
  • refs/tags/v0.7.4
  • refs/tags/v0.7.5
  • refs/tags/v0.7.6
  • refs/tags/v0.7.7
  • refs/tags/v0.7.8
  • refs/tags/v0.7.9
  • refs/tags/v0.8.0
  • refs/tags/v0.9.0
  • refs/tags/v2.0.0-alpha.1
  • refs/tags/v2.0.0-alpha.2
  • refs/tags/v2.0.0-beta.1
  • remove-stylefunc
  • responsive-images
  • return-table-columns
  • revert-239-internal-cursor
  • revert-300-patch-1
  • revert-442-truncate-textinput
  • router
  • save-key
  • scroll
  • scrolls
  • set-columns
  • set-custom-table-height
  • short-viewport-bugfix
  • softlint
  • spinner-cleanup
  • spinner-comments
  • spinner-fix-obsolete-doc
  • spinner-id
  • spinner-improvements
  • spinner-rework
  • stable-v0.12.1
  • stopwatch
  • stopwatch-id
  • streamline-spinner
  • support_autocompletion
  • table-add-stylefunc
  • table-help
  • table_performance
  • table_style_ext
  • tag-stopwatch-n-timer
  • teacup
  • term-input-loop
  • test-render-row
  • test/text-area-convert-existing
  • testindex
  • texinput-cleanup
  • textarea
  • textarea-cursor
  • textarea-details
  • textarea-matched-suggestions-out-of-range
  • textarea-newlines
  • textarea-paste
  • textarea-placeholder
  • textarea-placeholder-color
  • textarea-word
  • textarea-zero-limit
  • textarea/set-vp-content
  • textinput
  • textinput-ctrl-arrows
  • textinput-cursor
  • textinput-cursormode
  • textinput-echo
  • textinput-expose-sugs
  • textinput-fix
  • textinput-fix-render
  • textinput-keybindings
  • textinput-placeholder
  • textinput-reduce-alloc
  • textinput-regression
  • textinput-space-fix
  • textrea-buffer-fix
  • timer
  • timer-id
  • timer-updates
  • truncate-textinput
  • typo-textinput
  • uniseg-textinput
  • update-contributing
  • update-position-constant-in-join-horizontal
  • updates
  • upgrade-tea
  • use-lipgloss-table
  • use-term
  • use_atomic_for_counting
  • v2-area
  • v2-deprecated
  • v2-easier-keymatch
  • v2-exp
  • v2-exp-table-tests
  • v2-exp-update
  • v2-generics
  • v2-go-bump
  • v2-help-light-dark
  • v2-image
  • v2-key-id
  • v2-lipgloss
  • v2-mini-tidy
  • v2-nil-cursors
  • v2-progress
  • v2-real-textarea
  • v2-remove-deprecated
  • v2-set-lines-vp
  • v2-setpromptfunc
  • v2-table
  • v2-textarea-adjustment
  • v2-textarea-api
  • v2-textarea-cursor
  • v2-textarea-moveto
  • v2-tidy
  • v2-tidy-again
  • v2-virtualcursor
  • validate
  • vertical-scrollbar
  • viewport
  • viewport-bounding
  • viewport-deprecation
  • viewport-final-line-fix
  • viewport-fixes
  • viewport-panic-fix
  • viewport-scroll
  • viewport-sizing
  • viewport-wrap
  • viewport/gutter-nil
  • vim
  • vp-help

21 Oct 2024 09:33PM UTC coverage: 44.437%. Remained the same
11449050433

Pull #643

github

aymanbagabas
feat: use inhouse wcwidth package instead of go-runewidth

This change replaces the `go-runewidth` package with our in-house
x/wcwidth package. This package is a simplified version of go-runewidth
that uses the `golang.org/x/text` package for Unicode character width
calculations.

We also can't be using both go-runewidth and uniseg to calculate
character widths, so we've removed the uniseg package as well.
Otherwise, we might end up with inconsistent character width
in terminals that don't support grapheme clusters.
Pull Request #643: feat: use inhouse wcwidth package instead of go-runewidth

17 of 22 new or added lines in 3 files covered. (77.27%)

1921 of 4323 relevant lines covered (44.44%)

81.78 hits per line

Relevant lines Covered
Build:
Build:
4323 RELEVANT LINES 1921 COVERED LINES
81.78 HITS PER LINE
Source Files on wcwidth
  • Tree
  • List 21
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
11449050433 wcwidth feat: use inhouse wcwidth package instead of go-runewidth This change replaces the `go-runewidth` package with our in-house x/wcwidth package. This package is a simplified version of go-runewidth that uses the `golang.org/x/text` package for Unic... Pull #643 21 Oct 2024 09:37PM UTC aymanbagabas github
44.44
See All Builds (1725)

Badge your Repo: bubbles

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc