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 TextSpan for use with SelectableText.rich
  • ✅ Export to HTML with CSS selection styles
  • ✅ Dark theme support with VS Code colors

Usage

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 styles
  • getSelectionCss() - Returns just the CSS for selection styling
  • toHtml() - 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.