make amount_alignment_column configurable
This commit is contained in:
parent
8c6bdc9864
commit
d6f9ec368f
|
@ -53,6 +53,17 @@ ledger_cli: ledger
|
||||||
# OPTIONAL, DEFAULT: INR
|
# OPTIONAL, DEFAULT: INR
|
||||||
default_currency: INR
|
default_currency: INR
|
||||||
|
|
||||||
|
# The precision to show in UI. NOTE: This applies only to the UI, not
|
||||||
|
# to the entries in journal.
|
||||||
|
#
|
||||||
|
# OPTIONAL, DEFAULT: 0
|
||||||
|
display_precision: 0
|
||||||
|
|
||||||
|
# The column to align the amount in the editor.
|
||||||
|
#
|
||||||
|
# OPTIONAL, DEFAULT: 52
|
||||||
|
amount_alignment_column: 52
|
||||||
|
|
||||||
# The locale used to format numbers. The list of locales supported
|
# The locale used to format numbers. The list of locales supported
|
||||||
# depends on your browser. It's known to work well with en-US and en-IN.
|
# depends on your browser. It's known to work well with en-US and en-IN.
|
||||||
#
|
#
|
||||||
|
|
|
@ -122,6 +122,7 @@ type Config struct {
|
||||||
LedgerCli string `json:"ledger_cli" yaml:"ledger_cli"`
|
LedgerCli string `json:"ledger_cli" yaml:"ledger_cli"`
|
||||||
DefaultCurrency string `json:"default_currency" yaml:"default_currency"`
|
DefaultCurrency string `json:"default_currency" yaml:"default_currency"`
|
||||||
DisplayPrecision int `json:"display_precision" yaml:"display_precision"`
|
DisplayPrecision int `json:"display_precision" yaml:"display_precision"`
|
||||||
|
AmountAlignmentColumn int `json:"amount_alignment_column" yaml:"amount_alignment_column"`
|
||||||
Locale string `json:"locale" yaml:"locale"`
|
Locale string `json:"locale" yaml:"locale"`
|
||||||
FinancialYearStartingMonth time.Month `json:"financial_year_starting_month" yaml:"financial_year_starting_month"`
|
FinancialYearStartingMonth time.Month `json:"financial_year_starting_month" yaml:"financial_year_starting_month"`
|
||||||
WeekStartingDay time.Weekday `json:"week_starting_day" yaml:"week_starting_day"`
|
WeekStartingDay time.Weekday `json:"week_starting_day" yaml:"week_starting_day"`
|
||||||
|
@ -152,6 +153,7 @@ var defaultConfig = Config{
|
||||||
LedgerCli: "ledger",
|
LedgerCli: "ledger",
|
||||||
DefaultCurrency: "INR",
|
DefaultCurrency: "INR",
|
||||||
DisplayPrecision: 0,
|
DisplayPrecision: 0,
|
||||||
|
AmountAlignmentColumn: 52,
|
||||||
Locale: "en-IN",
|
Locale: "en-IN",
|
||||||
Budget: Budget{Rollover: Yes},
|
Budget: Budget{Rollover: Yes},
|
||||||
FinancialYearStartingMonth: 4,
|
FinancialYearStartingMonth: 4,
|
||||||
|
|
|
@ -33,6 +33,12 @@
|
||||||
"maximum": 4,
|
"maximum": 4,
|
||||||
"description": "The precision to show in UI. NOTE: This applies only to the UI, not to the entries in journal."
|
"description": "The precision to show in UI. NOTE: This applies only to the UI, not to the entries in journal."
|
||||||
},
|
},
|
||||||
|
"amount_alignment_column": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 40,
|
||||||
|
"maximum": 100,
|
||||||
|
"description": "The column to align the amount in the editor."
|
||||||
|
},
|
||||||
"locale": {
|
"locale": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^[a-z]{2}-[A-Z]{2}$",
|
"pattern": "^[a-z]{2}-[A-Z]{2}$",
|
||||||
|
|
|
@ -33,6 +33,7 @@ interface UserConfig {
|
||||||
display_precision: number;
|
display_precision: number;
|
||||||
db_path: string;
|
db_path: string;
|
||||||
financial_year_starting_month: number;
|
financial_year_starting_month: number;
|
||||||
|
amount_alignment_column: number;
|
||||||
week_starting_day: number;
|
week_starting_day: number;
|
||||||
goals: Record<string, Array<GoalSummary>>;
|
goals: Record<string, Array<GoalSummary>>;
|
||||||
accounts: {
|
accounts: {
|
||||||
|
|
|
@ -24,6 +24,10 @@ const DATE = /^\d{4}[/-]\d{2}[/-]\d{2}/;
|
||||||
|
|
||||||
// https://ledger-cli.org/doc/ledger3.html#Journal-Format
|
// https://ledger-cli.org/doc/ledger3.html#Journal-Format
|
||||||
function formatLine(line: string, state: State) {
|
function formatLine(line: string, state: State) {
|
||||||
|
let amountAlignmentColumn = 52;
|
||||||
|
if (typeof USER_CONFIG !== "undefined") {
|
||||||
|
amountAlignmentColumn = USER_CONFIG.amount_alignment_column;
|
||||||
|
}
|
||||||
if (line.match(DATE) || line.match(/^[~=]/)) {
|
if (line.match(DATE) || line.match(/^[~=]/)) {
|
||||||
state.inTransaction = true;
|
state.inTransaction = true;
|
||||||
return line;
|
return line;
|
||||||
|
@ -42,11 +46,11 @@ function formatLine(line: string, state: State) {
|
||||||
);
|
);
|
||||||
if (fullMatch) {
|
if (fullMatch) {
|
||||||
const { account, prefix, amount, suffix } = fullMatch.groups;
|
const { account, prefix, amount, suffix } = fullMatch.groups;
|
||||||
if (account.length + prefix.length + amount.length <= 46) {
|
if (account.length + prefix.length + amount.length <= amountAlignmentColumn - 6) {
|
||||||
return (
|
return (
|
||||||
space(4) +
|
space(4) +
|
||||||
account +
|
account +
|
||||||
space(48 - account.length - prefix.length - amount.length) +
|
space(amountAlignmentColumn - 4 - account.length - prefix.length - amount.length) +
|
||||||
prefix +
|
prefix +
|
||||||
amount +
|
amount +
|
||||||
suffix
|
suffix
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
"ledger_cli": "hledger",
|
"ledger_cli": "hledger",
|
||||||
"default_currency": "EUR",
|
"default_currency": "EUR",
|
||||||
"display_precision": 0,
|
"display_precision": 0,
|
||||||
|
"amount_alignment_column": 52,
|
||||||
"locale": "es-EU",
|
"locale": "es-EU",
|
||||||
"financial_year_starting_month": 4,
|
"financial_year_starting_month": 4,
|
||||||
"week_starting_day": 0,
|
"week_starting_day": 0,
|
||||||
|
@ -115,6 +116,12 @@
|
||||||
],
|
],
|
||||||
"type": "array"
|
"type": "array"
|
||||||
},
|
},
|
||||||
|
"amount_alignment_column": {
|
||||||
|
"description": "The column to align the amount in the editor.",
|
||||||
|
"maximum": 100,
|
||||||
|
"minimum": 40,
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"budget": {
|
"budget": {
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
"description": "Budget configuration",
|
"description": "Budget configuration",
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
"ledger_cli": "ledger",
|
"ledger_cli": "ledger",
|
||||||
"default_currency": "EUR",
|
"default_currency": "EUR",
|
||||||
"display_precision": 0,
|
"display_precision": 0,
|
||||||
|
"amount_alignment_column": 52,
|
||||||
"locale": "es-EU",
|
"locale": "es-EU",
|
||||||
"financial_year_starting_month": 4,
|
"financial_year_starting_month": 4,
|
||||||
"week_starting_day": 0,
|
"week_starting_day": 0,
|
||||||
|
@ -115,6 +116,12 @@
|
||||||
],
|
],
|
||||||
"type": "array"
|
"type": "array"
|
||||||
},
|
},
|
||||||
|
"amount_alignment_column": {
|
||||||
|
"description": "The column to align the amount in the editor.",
|
||||||
|
"maximum": 100,
|
||||||
|
"minimum": 40,
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"budget": {
|
"budget": {
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
"description": "Budget configuration",
|
"description": "Budget configuration",
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
"ledger_cli": "beancount",
|
"ledger_cli": "beancount",
|
||||||
"default_currency": "INR",
|
"default_currency": "INR",
|
||||||
"display_precision": 0,
|
"display_precision": 0,
|
||||||
|
"amount_alignment_column": 52,
|
||||||
"locale": "en-IN",
|
"locale": "en-IN",
|
||||||
"financial_year_starting_month": 4,
|
"financial_year_starting_month": 4,
|
||||||
"week_starting_day": 0,
|
"week_starting_day": 0,
|
||||||
|
@ -123,6 +124,12 @@
|
||||||
],
|
],
|
||||||
"type": "array"
|
"type": "array"
|
||||||
},
|
},
|
||||||
|
"amount_alignment_column": {
|
||||||
|
"description": "The column to align the amount in the editor.",
|
||||||
|
"maximum": 100,
|
||||||
|
"minimum": 40,
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"budget": {
|
"budget": {
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
"description": "Budget configuration",
|
"description": "Budget configuration",
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
"ledger_cli": "hledger",
|
"ledger_cli": "hledger",
|
||||||
"default_currency": "INR",
|
"default_currency": "INR",
|
||||||
"display_precision": 0,
|
"display_precision": 0,
|
||||||
|
"amount_alignment_column": 52,
|
||||||
"locale": "en-IN",
|
"locale": "en-IN",
|
||||||
"financial_year_starting_month": 4,
|
"financial_year_starting_month": 4,
|
||||||
"week_starting_day": 0,
|
"week_starting_day": 0,
|
||||||
|
@ -122,6 +123,12 @@
|
||||||
],
|
],
|
||||||
"type": "array"
|
"type": "array"
|
||||||
},
|
},
|
||||||
|
"amount_alignment_column": {
|
||||||
|
"description": "The column to align the amount in the editor.",
|
||||||
|
"maximum": 100,
|
||||||
|
"minimum": 40,
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"budget": {
|
"budget": {
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
"description": "Budget configuration",
|
"description": "Budget configuration",
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
"ledger_cli": "ledger",
|
"ledger_cli": "ledger",
|
||||||
"default_currency": "INR",
|
"default_currency": "INR",
|
||||||
"display_precision": 0,
|
"display_precision": 0,
|
||||||
|
"amount_alignment_column": 52,
|
||||||
"locale": "en-IN",
|
"locale": "en-IN",
|
||||||
"financial_year_starting_month": 4,
|
"financial_year_starting_month": 4,
|
||||||
"week_starting_day": 0,
|
"week_starting_day": 0,
|
||||||
|
@ -122,6 +123,12 @@
|
||||||
],
|
],
|
||||||
"type": "array"
|
"type": "array"
|
||||||
},
|
},
|
||||||
|
"amount_alignment_column": {
|
||||||
|
"description": "The column to align the amount in the editor.",
|
||||||
|
"maximum": 100,
|
||||||
|
"minimum": 40,
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"budget": {
|
"budget": {
|
||||||
"additionalProperties": false,
|
"additionalProperties": false,
|
||||||
"description": "Budget configuration",
|
"description": "Budget configuration",
|
||||||
|
|
Loading…
Reference in New Issue