Skip to content

Instantly share code, notes, and snippets.

View PlugFox's full-sized avatar
🦊
🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊

Plague Fox PlugFox

🦊
🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊🦊
View GitHub Profile
@PlugFox
PlugFox / main.dart
Last active March 14, 2025 21:04
A simple declarative navigation system for Flutter.
/*
* Declarative Navigation
* A simple declarative navigation system for Flutter.
* https://gist.github.com/PlugFox/aaa2a1ab4ab71b483b736530ebb03894
* https://dartpad.dev?id=aaa2a1ab4ab71b483b736530ebb03894
* Mike Matiunin <[email protected]>, 14 March 2025
*/
import 'dart:async';
import 'dart:collection';
@PlugFox
PlugFox / main.dart
Last active March 11, 2025 16:42
DateTime to int
int dateToValue(DateTime date) {
assert(date.isUtc, 'DateTime must be in UTC');
return (date.year << 9) | (date.month << 5) | date.day;
}
DateTime valueToDate(int value) =>
DateTime.utc(value >> 9, (value >> 5) & 0xF, value & 0x1F);
int dateTimeToValue(DateTime dateTime) {
assert(dateTime.isUtc, 'DateTime must be in UTC');
@PlugFox
PlugFox / main.dart
Last active March 9, 2025 15:30
Property widget with dots / bulets for Flutter
/// {@template property_widget}
/// Widget to display a property with a label and a value.
/// [label] • • • • • [value]
///
/// Tip: Use `DefaultTextStyle` to customize the underlying text style.
/// Tip: User `FittedBox` to downscale the size of form at limited space.
/// {@endtemplate}
class PropertyWidget extends StatelessWidget {
/// {@macro property_widget}
const PropertyWidget({
@PlugFox
PlugFox / main.dart
Last active February 27, 2025 20:58
CustomClipper with MultiChildLayoutDelegate
/*
* CustomClipper with MultiChildLayoutDelegate
* https://gist.github.com/PlugFox/d9e36528326d59f3429d131e610bf315
* https://dartpad.dev?id=d9e36528326d59f3429d131e610bf315
* Mike Matiunin <[email protected]>, 27 February 2025
*/
import 'dart:async';
import 'dart:math' as math;
@PlugFox
PlugFox / defer.dart
Created February 27, 2025 01:39
Go like defer in Dart
import 'dart:async' show Future, Zone, scheduleMicrotask;
final Object _deferredPushKey = Object();
/// Defers the given [callback] function to be executed after the current zone.
/// The callback will be executed in the reverse order of their registration.
void defer(void Function() callback) {
final push = Zone.current[_deferredPushKey];
if (push is void Function(void Function() callback)) {
push(callback);
@PlugFox
PlugFox / vixen_report.json
Created February 24, 2025 15:52
Vixen Report (initial)
{
"status": "ok",
"data": {
"from": "2025-02-17T15:51:19.647Z",
"to": "2025-02-24T15:51:19.647Z",
"active": [
{
"cid": -1001782660763,
"users": [
{
@PlugFox
PlugFox / main.dart
Created February 23, 2025 09:44
Date object
extension type const Date.of(DateTime _date) implements DateTime {
Date(int year, int month, int day) : _date = DateTime(year, month, day);
Date.now() : _date = DateTime.now();
Date.value(int value) : _date = DateTime((value >> 9), (value >> 5) & 0xF, value & 0x1F);
int get value => (_date.year << 9) | (_date.month << 5) | _date.day;
}
@PlugFox
PlugFox / main.dart
Last active February 18, 2025 12:22
Format numbers
// Format numbers
// https://dartpad.dev/?id=22aa280ffe2d847ca8c074b7eebca969
import 'dart:math' as math;
String formatNumber$1(int number) => number.toString().replaceAllMapped(
RegExp(r'(\d)(?=(\d{3})+(?!\d))'),
(match) => '${match[1]} ',
);
@PlugFox
PlugFox / nums.dart
Last active January 15, 2025 07:30
Dart: Nums benchmark
import 'dart:isolate';
import 'dart:math' as math;
import 'dart:typed_data';
import 'package:benchmark_harness/benchmark_harness.dart';
// $ dart run bin/nums.dart
//
// $ dart compile exe bin/nums.dart -o out/nums.exe
// $ ./out/nums.exe
@PlugFox
PlugFox / main.dart
Created January 13, 2025 21:59
Flutter chess example
import 'dart:math' as math;
import 'dart:ui';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
class _Binding = BindingBase