Base Code View
A Flutter package for syntax highlighting with native text selection support.
Installation
Add the package to your pubspec.yaml dependencies:
dependencies:
base_cod_view: ^0.0.6
Then install:
flutter pub get
Import where needed:
import 'package:base_cod_view/base_code_view.dart';
Features
- ✅ Syntax highlighting for 180+ programming languages
- ✅ Native Flutter text selection with customizable colors
- ✅ Convert to
TextSpanfor use withSelectableText.rich - ✅ Export to HTML with CSS selection styles
- ✅ Dark theme support with VS Code colors
Usage
Flutter Widget (Recommended)
import 'package:base_cod_view/base_code_view.dart';
import 'package:flutter/material.dart';
class CodeViewer extends StatelessWidget {
@override
Widget build(BuildContext context) {
final highlight = Highlight();
highlight.registerLanguage(Languages.dart, dart);
final source = '''
void main() {
print('Hello, World!');
}
''';
final result = highlight.parse(
source: source,
language: Languages.dart,
);
return SelectableText.rich(
result.toTextSpan(
baseStyle: TextStyle(
fontFamily: 'monospace',
fontSize: 14,
color: Color(0xFFd4d4d4),
),
),
);
}
}
HTML Export
final result = highlight.parse(
source: source,
language: Languages.dart,
);
// Get HTML with selection color support
final htmlWithStyles = result.toHtmlWithStyles(
selectionColor: 'rgba(100, 150, 200, 0.3)',
selectionTextColor: 'inherit',
);
// Or get just the HTML and CSS separately
final html = result.toHtml();
final css = result.getSelectionCss(
selectionColor: 'rgba(100, 150, 200, 0.3)',
);
Selection Color Support
The package includes multiple ways to handle text selection:
toTextSpan()- Converts to Flutter TextSpan with native selection (recommended)toHtmlWithStyles()- Returns HTML with inline CSS including selection stylesgetSelectionCss()- Returns just the CSS for selection stylingtoHtml()- Returns just the HTML (original behavior)
Customizing Selection Color
For Flutter widgets, use TextSelectionTheme:
MaterialApp(
theme: ThemeData(
textSelectionTheme: TextSelectionThemeData(
selectionColor: Color(0x6664AAFF), // Blue with opacity
selectionHandleColor: Color(0xFF64AAFF),
),
),
// ...
)
Supported Languages
Dart, JavaScript, Python, Java, C++, C#, Go, Rust, PHP, Ruby, Swift, Kotlin, TypeScript, and 170+ more!
Libraries
- base_code_view
- A Flutter package for displaying and highlighting code with customizable styles and features.
- languages/abnf
- languages/accesslog
- languages/actionscript
- languages/ada
- languages/all
- languages/angelscript
- languages/apache
- languages/applescript
- languages/arcade
- languages/arduino
- languages/armasm
- languages/asciidoc
- languages/aspectj
- languages/autohotkey
- languages/autoit
- languages/avrasm
- languages/awk
- languages/axapta
- languages/bash
- languages/basic
- languages/bnf
- languages/brainfuck
- languages/cal
- languages/capnproto
- languages/ceylon
- languages/clean
- languages/clojure
- languages/clojure_repl
- languages/cmake
- languages/coffeescript
- languages/coq
- languages/cos
- languages/cpp
- languages/crmsh
- languages/crystal
- languages/cs
- languages/csp
- languages/css
- languages/d
- languages/dart
- languages/delphi
- languages/diff
- languages/django
- languages/dns
- languages/dockerfile
- languages/dos
- languages/dsconfig
- languages/dts
- languages/dust
- languages/ebnf
- languages/elixir
- languages/elm
- languages/erb
- languages/erlang
- languages/erlang_repl
- languages/excel
- languages/fix
- languages/flix
- languages/fortran
- languages/fsharp
- languages/gams
- languages/gauss
- languages/gcode
- languages/gherkin
- languages/glsl
- languages/gml
- languages/gn
- languages/go
- languages/golo
- languages/gradle
- languages/graphql
- languages/groovy
- languages/haml
- languages/handlebars
- languages/haskell
- languages/haxe
- languages/hsp
- languages/htmlbars
- languages/http
- languages/hy
- languages/inform7
- languages/ini
- languages/irpf90
- languages/isbl
- languages/java
- languages/javascript
- languages/jboss_cli
- languages/json
- languages/julia
- languages/julia_repl
- languages/kotlin
- languages/lang_1c
- languages/language/languages
- Language definitions and enumeration for syntax highlighting support.
- languages/lasso
- languages/ldif
- languages/leaf
- languages/less
- languages/lisp
- languages/livecodeserver
- languages/livescript
- languages/llvm
- languages/lsl
- languages/lua
- languages/makefile
- languages/markdown
- languages/mathematica
- languages/matlab
- languages/maxima
- languages/mel
- languages/mercury
- languages/mipsasm
- languages/mizar
- languages/mojolicious
- languages/monkey
- languages/moonscript
- languages/n1ql
- languages/nginx
- languages/nimrod
- languages/nix
- languages/nsis
- languages/objectivec
- languages/ocaml
- languages/openscad
- languages/oxygene
- languages/parser3
- languages/perl
- languages/pf
- languages/pgsql
- languages/php
- languages/plaintext
- languages/pony
- languages/powershell
- languages/processing
- languages/profile
- languages/prolog
- languages/properties
- languages/protobuf
- languages/puppet
- languages/purebasic
- languages/python
- languages/q
- languages/qml
- languages/r
- languages/reasonml
- languages/rib
- languages/roboconf
- languages/routeros
- languages/rsl
- languages/ruby
- languages/ruleslanguage
- languages/rust
- languages/sas
- languages/scala
- languages/scheme
- languages/scilab
- languages/scss
- languages/shell
- languages/smali
- languages/smalltalk
- languages/sml
- languages/solidity
- languages/sqf
- languages/sql
- languages/stan
- languages/stata
- languages/step21
- languages/stylus
- languages/subunit
- languages/swift
- languages/taggerscript
- languages/tap
- languages/tcl
- languages/tex
- languages/thrift
- languages/tp
- languages/twig
- languages/typescript
- languages/vala
- languages/vbnet
- languages/vbscript
- languages/vbscript_html
- languages/verilog
- languages/vhdl
- languages/vim
- languages/vue
- languages/x86asm
- languages/xl
- languages/xml
- languages/xquery
- languages/yaml
- languages/zephir
- languages_doc
- Syntax highlighting support for programming languages.