merge taskjuggler vscode extension into ideas

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 17:03:20 +01:00
parent e9978403c9
commit 1d68d7006a
26 changed files with 9079 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},
"plugins": [
"@typescript-eslint"
],
"rules": {
"@typescript-eslint/naming-convention": "warn",
"@typescript-eslint/semi": "warn",
"curly": "warn",
"eqeqeq": "warn",
"no-throw-literal": "warn",
"semi": "off"
},
"ignorePatterns": [
"out",
"dist",
"**/*.d.ts"
]
}

View File

@@ -0,0 +1,3 @@
# Set default behavior to automatically normalize line endings.
* text=auto

View File

@@ -0,0 +1,2 @@
node_modules
*.vsix

View File

@@ -0,0 +1,7 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"dbaeumer.vscode-eslint"
]
}

View File

@@ -0,0 +1,34 @@
// A launch configuration that launches the extension inside a new window
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
],
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
"preLaunchTask": "${defaultBuildTask}"
},
{
"name": "Extension Tests",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
],
"outFiles": [
"${workspaceFolder}/out/test/**/*.js"
],
"preLaunchTask": "${defaultBuildTask}"
}
]
}

View File

@@ -0,0 +1,11 @@
// Place your settings in this file to overwrite default and user settings.
{
"files.exclude": {
"out": false // set this to true to hide the "out" folder with the compiled JS files
},
"search.exclude": {
"out": true // set this to false to include "out" folder in search results
},
// Turn off tsc task auto detection since we have the necessary tasks as npm scripts
"typescript.tsc.autoDetect": "off"
}

View File

@@ -0,0 +1,20 @@
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "watch",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"reveal": "never"
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

View File

@@ -0,0 +1,11 @@
.vscode/**
.vscode-test/**
.gitignore
src/**
.gitignore
.yarnrc
vsc-extension-quickstart.md
**/tsconfig.json
**/.eslintrc.json
**/*.map
**/*.ts

View File

@@ -0,0 +1,184 @@
# CHANGELOG
All notable changes to the "taskjuggler-syntax" extension will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.0.0] - 2017-06-20
### Added
- New visual identity by [@tylerfortune8](https://github.com/tylerfortune8).
- Version navigation.
- Links to latest released version in previous versions.
- "Why keep a changelog?" section.
- "Who needs a changelog?" section.
- "How do I make a changelog?" section.
- "Frequently Asked Questions" section.
- New "Guiding Principles" sub-section to "How do I make a changelog?".
- Simplified and Traditional Chinese translations from [@tianshuo](https://github.com/tianshuo).
- German translation from [@mpbzh](https://github.com/mpbzh) & [@Art4](https://github.com/Art4).
- Italian translation from [@azkidenz](https://github.com/azkidenz).
- Swedish translation from [@magol](https://github.com/magol).
- Turkish translation from [@karalamalar](https://github.com/karalamalar).
- French translation from [@zapashcanon](https://github.com/zapashcanon).
- Brazilian Portugese translation from [@Webysther](https://github.com/Webysther).
- Polish translation from [@amielucha](https://github.com/amielucha) & [@m-aciek](https://github.com/m-aciek).
- Russian translation from [@aishek](https://github.com/aishek).
- Czech translation from [@h4vry](https://github.com/h4vry).
- Slovak translation from [@jkostolansky](https://github.com/jkostolansky).
- Korean translation from [@pierceh89](https://github.com/pierceh89).
- Croatian translation from [@porx](https://github.com/porx).
- Persian translation from [@Hameds](https://github.com/Hameds).
- Ukrainian translation from [@osadchyi-s](https://github.com/osadchyi-s).
### Changed
- Start using "changelog" over "change log" since it's the common usage.
- Start versioning based on the current English version at 0.3.0 to help
translation authors keep things up-to-date.
- Rewrite "What makes unicorns cry?" section.
- Rewrite "Ignoring Deprecations" sub-section to clarify the ideal
scenario.
- Improve "Commit log diffs" sub-section to further argument against
them.
- Merge "Why cant people just use a git log diff?" with "Commit log
diffs"
- Fix typos in Simplified Chinese and Traditional Chinese translations.
- Fix typos in Brazilian Portuguese translation.
- Fix typos in Turkish translation.
- Fix typos in Czech translation.
- Fix typos in Swedish translation.
- Improve phrasing in French translation.
- Fix phrasing and spelling in German translation.
### Removed
- Section about "changelog" vs "CHANGELOG".
## [0.3.0] - 2015-12-03
### Added
- RU translation from [@aishek](https://github.com/aishek).
- pt-BR translation from [@tallesl](https://github.com/tallesl).
- es-ES translation from [@ZeliosAriex](https://github.com/ZeliosAriex).
## [0.2.0] - 2015-10-06
### Changed
- Remove exclusionary mentions of "open source" since this project can
benefit both "open" and "closed" source projects equally.
## [0.1.0] - 2015-10-06
### Added
- Answer "Should you ever rewrite a change log?".
### Changed
- Improve argument against commit logs.
- Start following [SemVer](https://semver.org) properly.
## [0.0.8] - 2015-02-17
### Changed
- Update year to match in every README example.
- Reluctantly stop making fun of Brits only, since most of the world
writes dates in a strange way.
### Fixed
- Fix typos in recent README changes.
- Update outdated unreleased diff link.
## [0.0.7] - 2015-02-16
### Added
- Link, and make it obvious that date format is ISO 8601.
### Changed
- Clarified the section on "Is there a standard change log format?".
### Fixed
- Fix Markdown links to tag comparison URL with footnote-style links.
## [0.0.6] - 2014-12-12
### Added
- README section on "yanked" releases.
## [0.0.5] - 2014-08-09
### Added
- Markdown links to version tags on release headings.
- Unreleased section to gather unreleased changes and encourage note
keeping prior to releases.
## [0.0.4] - 2014-08-09
### Added
- Better explanation of the difference between the file ("CHANGELOG")
and its function "the change log".
### Changed
- Refer to a "change log" instead of a "CHANGELOG" throughout the site
to differentiate between the file and the purpose of the file — the
logging of changes.
### Removed
- Remove empty sections from CHANGELOG, they occupy too much space and
create too much noise in the file. People will have to assume that the
missing sections were intentionally left out because they contained no
notable changes.
## [0.0.3] - 2014-08-09
### Added
- "Why should I care?" section mentioning The Changelog podcast.
## [0.0.2] - 2014-07-10
### Added
- Explanation of the recommended reverse chronological release ordering.
## [0.0.1] - 2014-05-31
### Added
- This CHANGELOG file to hopefully serve as an evolving example of a
standardized open source project CHANGELOG.
- CNAME file to enable GitHub Pages custom domain
- README now contains answers to common questions about CHANGELOGs
- Good examples and basic guidelines, including proper date formatting.
- Counter-examples: "What makes unicorns cry?"
[Unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.3.0...v1.0.0
[0.3.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.8...v0.1.0
[0.0.8]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.7...v0.0.8
[0.0.7]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.6...v0.0.7
[0.0.6]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.5...v0.0.6
[0.0.5]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.4...v0.0.5
[0.0.4]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.3...v0.0.4
[0.0.3]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.2...v0.0.3
[0.0.2]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.1...v0.0.2
[0.0.1]: https://github.com/olivierlacan/keep-a-changelog/releases/tag/v0.0.1

View File

@@ -0,0 +1,65 @@
# taskjuggler-syntax README
This extension provides syntax highlighting support for Taskjuggler.
## Features
Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.
For example if there is an image subfolder under your extension project workspace:
\!\[feature X\]\(images/feature-x.png\)
> Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.
## Requirements
If you have any requirements or dependencies, add a section describing those and how to install and configure them.
## Extension Settings
Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.
For example:
This extension contributes the following settings:
* `myExtension.enable`: enable/disable this extension
* `myExtension.thing`: set to `blah` to do something
## Known Issues
Calling out known issues can help limit users opening duplicate issues against your extension.
## Release Notes
Users appreciate release notes as you update your extension.
### 1.0.0
Initial release of ...
### 1.0.1
Fixed issue #.
### 1.1.0
Added features X, Y, and Z.
-----------------------------------------------------------------------------------------------------------
## Working with Markdown
**Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
* Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux)
* Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux)
* Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets
### For more information
* [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
* [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
**Enjoy!**

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,141 @@
project "Scrum Example Project" 2012-02-01 +4m {
now 2012-03-07
}
resource r1 "R1"
resource r2 "R2"
resource r3 "R3"
# This example uses a very simple WBS that groups tasks by sprint. For
# larger projects, a classical WBS that breaks tasks into smaller
# tasks and so on is probably more appropriate. The reports can then
# select the sprint context by date.
task product "Product" {
task s1 "Sprint 1" {
task t1 "T1" {
effort 5d
allocate r1
}
task t2 "T2" {
effort 3d
allocate r1
depends !t1
}
task t3 "T3" {
effort 7d
allocate r1
}
task t4 "T4" {
effort 4d
allocate r2
depends !t2
}
}
task s2 "Sprint 2" {
depends !s1
task t1 "T1" {
effort 3d
allocate r2
}
task t2 "T2" {
effort 4d
allocate r3
depends !t1
}
task t3 "T3" {
effort 6d
allocate r1
}
task t4 "T4" {
effort 5d
allocate r3
depends !t3
}
task t5 "T5" {
effort 3d
allocate r2
depends !t1
}
}
task s3 "Sprint 3" {
depends !s2
task t1 "T1" {
effort 6d
allocate r1
depends product.s1.t2
}
task t2 "T2" {
effort 4d
allocate r3
depends !t1
}
task t3 "T3" {
effort 4d
allocate r1
depends product.s2.t4
}
task t4 "T4" {
effort 7d
allocate r2
depends !t3
}
task t5 "T5" {
effort 5d
allocate r2
depends !t1
}
}
}
navigator menu
textreport "" {
header -8<-
== Scrum Example Project ==
<[navigator id='menu']>
->8-
formats html
textreport "" {
columns name, status, effort, resources
taskreport "Product Backlog" {
}
taskreport "Sprint 1 Backlog" {
taskroot product.s1
}
taskreport "Sprint 2 Backlog" {
taskroot product.s2
}
taskreport "Sprint 3 Backlog" {
taskroot product.s3
}
title "Backlogs"
purge formats
}
textreport "" {
sorttasks id.up
width 800
tracereport "Product Burndown" {
columns opentasks
hidetask plan.id != "product"
}
tracereport "Sprint 1 Burndown" {
columns opentasks
hidetask plan.id != "product.s1"
}
tracereport "Sprint 2 Burndown" {
columns opentasks
hidetask plan.id != "product.s2"
}
tracereport "Sprint 3 Burndown" {
columns opentasks
hidetask plan.id != "product.s3"
}
title "Burndown Charts"
purge formats
}
purge formats
}

View File

@@ -0,0 +1,338 @@
/*
* This file contains a project skeleton. It is part of the
* TaskJuggler project management tool. You can use this as a basis to
* start your own project file.
*/
project your_project_id "Your Project Title" 2011-11-11-0:00--0500 +4m {
# Set the default time zone for the project. If not specified, UTC
# is used.
timezone "America/New_York"
# Hide the clock time. Only show the date.
timeformat "%Y-%m-%d"
# Use US format for numbers
numberformat "-" "" "," "." 1
# Use US financial format for currency values. Don't show cents.
currencyformat "(" ")" "," "." 0
# Pick a day during the project that will be reported as 'today' in
# the project reports. If not specified, the current day will be
# used, but this will likely be outside of the project range, so it
# can't be seen in the reports.
now 2011-12-24
# The currency for all money values is the Euro.
currency "USD"
# You can define multiple scenarios here if you need them.
#scenario plan "Plan" {
# scenario actual "Actual"
#}
# You can define your own attributes for tasks and resources. This
# is handy to capture additional information about the project that
# is not directly impacting the project schedule, but which you like to
# keep in one place.
#extend task {
# reference spec "Link to Wiki page"
#}
#extend resource {
# text Phone "Phone"
#}
}
copyright "Claim your rights here"
# If you have any text block that you need multiple times to describe
# your project, you should define a macro for it. Macros can even have
# variable segments that you can set upon calling the macro.
#
# macro Task [
# task "A ${1} task" {
# }
# ]
#
# Can be called as
# ${Task "big"}
# to generate
# task "A big task" {
# }
# You can attach flags to accounts, resources and tasks. These can be
# used to filter out subsets of them during reporting.
flags important, hidden
# If you want to do budget planning for your project, you need to
# define some accounts.
account cost "Project Cost" {
account dev "Development"
account doc "Documentation"
}
account rev "Customer Payments"
# The Profit & Loss analysis should be rev - cost accounts.
balance cost rev
# Define your public holidays here.
vacation "New Year's Day" 2012-01-02
vacation "Birthday of Martin Luther King, Jr." 2012-01-16
vacation "Washington's Birthday" 2012-02-20
vacation "Memorial Day" 2012-05-28
vacation "Independence Day" 2012-07-04
vacation "Labor Day" 2012-09-03
vacation "Columbus Day" 2012-10-08
vacation "Veterans Day" 2012-11-12
vacation "Thanksgiving Day" 2012-11-22
vacation "Christmas Day" 2012-12-25
# The daily default rate of all resources. This can be overridden for each
# resource. We specify this so we can do a good calculation of
# the costs of the project.
rate 400.0
# This is a set of example resources.
resource r1 "Resource 1"
resource t1 "Team 1" {
managers r1
resource r2 "Resource 2"
resource r3 "Resource 3"
}
# This is a resource that does not do any work.
resource s1 "System 1" {
efficiency 0.0
rate 600.0
}
task project "Project" {
task wp1 "Workpackage 1" {
task t1 "Task 1"
task t2 "Task 2"
}
task wp2 "Work package 2" {
depends !wp1
task t1 "Task 1"
task t2 "Task 2"
}
task deliveries "Deliveries" {
task "Item 1" {
depends !!wp1
}
task "Item 2" {
depends !!wp2
}
}
}
# Now the project has been specified completely. Stopping here would
# result in a valid TaskJuggler file that could be processed and
# scheduled. Here reports will be generated to visualize the
# results.
navigator navbar {
hidereport 0
}
macro TaskTip [
tooltip istask() -8<-
'''Start: ''' <-query attribute='start'->
'''End: ''' <-query attribute='end'->
----
'''Resources:'''
<-query attribute='resources'->
----
'''Precursors: '''
<-query attribute='precursors'->
----
'''Followers: '''
<-query attribute='followers'->
->8-
]
textreport frame "" {
header -8<-
== TaskJuggler Project Template ==
<[navigator id="navbar"]>
->8-
footer "----"
textreport index "Overview" {
formats html
center '<[report id="overview"]>'
}
textreport "Status" {
formats html
center -8<-
<[report id="status.dashboard"]>
----
<[report id="status.completed"]>
----
<[report id="status.ongoing"]>
----
<[report id="status.future"]>
->8-
}
textreport wps "Work packages" {
textreport wp1 "Work package 1" {
formats html
center '<[report id="wp1"]>'
}
textreport wp2 "Work package 2" {
formats html
center '<[report id="wp2"]>'
}
}
textreport "Deliveries" {
formats html
center '<[report id="deliveries"]>'
}
textreport "ContactList" {
formats html
title "Contact List"
center '<[report id="contactList"]>'
}
textreport "ResourceGraph" {
formats html
title "Resource Graph"
center '<[report id="resourceGraph"]>'
}
}
# A traditional Gantt chart with a project overview.
taskreport overview "" {
header -8<-
=== Project Overview ===
The project is structured into 2 work packages.
# Specification
# <-reportlink id='frame.wps.wp1'->
# <-reportlink id='frame.wps.wp2'->
# Testing
=== Original Project Plan ===
->8-
columns bsi { title 'WBS' },
name, start, end, effort, cost,
revenue, chart { ${TaskTip} }
# For this report we like to have the abbreviated weekday in front
# of the date. %a is the tag for this.
timeformat "%a %Y-%m-%d"
loadunit days
hideresource 1
balance cost rev
caption 'All effort values are in man days.'
footer -8<-
=== Staffing ===
All project phases are properly staffed. See [[ResourceGraph]] for
detailed resource allocations.
=== Current Status ===
Some blurb about the current situation.
->8-
}
# Macro to set the background color of a cell according to the alert
# level of the task.
macro AlertColor [
cellcolor plan.alert = 0 "#00D000" # green
cellcolor plan.alert = 1 "#D0D000" # yellow
cellcolor plan.alert = 2 "#D00000" # red
]
taskreport status "" {
columns bsi { width 50 title 'WBS' }, name { width 150 },
start { width 100 }, end { width 100 },
effort { width 100 },
alert { tooltip plan.journal
!= '' "<-query attribute='journal'->" width 150 },
status { width 150 }
taskreport dashboard "" {
headline "Project Dashboard (<-query attribute='now'->)"
columns name { title "Task" ${AlertColor} width 200},
resources { width 200 ${AlertColor}
listtype bullets
listitem "<-query attribute='name'->"
start ${projectstart} end ${projectend} },
alerttrend { title "Trend" ${AlertColor} width 50 },
journal { width 350 ${AlertColor} }
journalmode status_up
journalattributes headline, author, date, summary, details
hidetask ~hasalert(0)
sorttasks alert.down, plan.end.up
period %{${now} - 1w} +1w
}
taskreport completed "" {
headline "Already completed tasks"
hidetask ~(plan.end <= ${now})
}
taskreport ongoing "" {
headline "Ongoing tasks"
hidetask ~((plan.start <= ${now}) & (plan.end > ${now}))
}
taskreport future "" {
headline "Future tasks"
hidetask ~(plan.start > ${now})
}
}
# A list of tasks showing the resources assigned to each task.
taskreport wp1 "" {
headline "Work package 1 - Resource Allocation Report"
columns bsi { title 'WBS' }, name, start, end, effort { title "Work" },
duration, chart { ${TaskTip} scale day width 500 }
timeformat "%Y-%m-%d"
hideresource ~(isleaf() & isleaf_())
sortresources name.up
taskroot project.wp1
}
# A list of tasks showing the resources assigned to each task.
taskreport wp2 "" {
headline "Work package 2 - Resource Allocation Report"
columns bsi { title 'WBS' }, name, start, end, effort { title "Work" },
duration, chart { ${TaskTip} scale day width 500 }
timeformat "%Y-%m-%d"
hideresource ~(isleaf() & isleaf_())
sortresources name.up
taskroot project.wp2
}
# A list of all tasks with the percentage completed for each task
taskreport deliveries "" {
headline "Project Deliverables"
columns bsi { title 'WBS' }, name, start, end, note { width 150 }, complete,
chart { ${TaskTip} }
taskroot project.deliveries
hideresource 1
}
# A list of all employees with their contact details.
resourcereport contactList "" {
headline "Contact list and duty plan"
columns name,
email { celltext 1 "[mailto:<-email-> <-email->]" },
managers { title "Manager" },
chart { scale day }
hideresource ~isleaf()
sortresources name.up
hidetask 1
}
# A graph showing resource allocation. It identifies whether each
# resource is under- or over-allocated for.
resourcereport resourceGraph "" {
headline "Resource Allocation Graph"
columns no, name, effort, rate, weekly { ${TaskTip} }
loadunit shortauto
# We only like to show leaf tasks for leaf resources.
hidetask ~(isleaf() & isleaf_())
sorttasks plan.start.up
}

View File

@@ -0,0 +1,764 @@
" Vim syntax file
" Language: TaskJuggler
" Maintainer: TaskJuggler Developers <taskjuggler-devel@googlegroups.com>
" Last Change: 2020-03-14 17:32:05 +0100
" This file was automatically generated by VimSyntax.rb
if exists("b:current_syntax")
finish
endif
setlocal softtabstop=2
setlocal cindent shiftwidth=2
setlocal tabstop=2
setlocal expandtab
setlocal cinoptions=g0,t0,+0,(0,c0,C1,n-2
setlocal cinwords=account,accountreport,allocate,booking,columns,dailymax,dailymin,date,depends,export,extend,icalreport,include,journalentry,limits,maximum,minimum,monthlymax,monthlymin,navigator,newtask,nikureport,number,precedes,project,reference,resource,resourcereport,richtext,scenario,shift,status,statussheet,statussheetreport,supplement,tagfile,task,taskreport,text,textreport,timesheet,timesheetreport,tracereport,weeklymax,weeklymin
setlocal cinkeys=0{,0},!^F,o,O
setlocal cindent
syn keyword tjp_macro macro contained
syn keyword tjp_project project contained
syn keyword tjp_supplement supplement contained
syn keyword tjp_export export contained
hi def link tjp_export Function
syn keyword tjp_nikureport nikureport contained
hi def link tjp_nikureport Function
syn keyword tjp_resource resource contained
hi def link tjp_resource Function
syn keyword tjp_resourcereport resourcereport contained
hi def link tjp_resourcereport Function
syn keyword tjp_scenario scenario contained
hi def link tjp_scenario Function
syn keyword tjp_shift shift contained
hi def link tjp_shift Function
syn keyword tjp_statussheetreport statussheetreport contained
hi def link tjp_statussheetreport Function
syn keyword tjp_task_statussheet task contained
hi def link tjp_task_statussheet Function
syn keyword tjp_task task contained
hi def link tjp_task Function
syn keyword tjp_taskreport taskreport contained
hi def link tjp_taskreport Function
syn keyword tjp_textreport textreport contained
hi def link tjp_textreport Function
syn keyword tjp_timesheetreport timesheetreport contained
hi def link tjp_timesheetreport Function
syn keyword tjp_tracereport tracereport contained
hi def link tjp_tracereport Function
syn keyword tjp_account account contained
hi def link tjp_account Function
syn keyword tjp_accountreport accountreport contained
hi def link tjp_accountreport Function
syn keyword tjp_allocate allocate contained
hi def link tjp_allocate Type
syn keyword tjp_alternative alternative contained
hi def link tjp_alternative Type
syn keyword tjp_select select contained
hi def link tjp_select Type
syn keyword tjp_persistent persistent contained
hi def link tjp_persistent Type
syn keyword tjp_mandatory mandatory contained
hi def link tjp_mandatory Type
syn keyword tjp_shifts_allocate shifts contained
hi def link tjp_shifts_allocate Type
syn keyword tjp_author author contained
hi def link tjp_author Type
syn keyword tjp_balance balance
hi def link tjp_balance Type
syn keyword tjp_overtime_booking overtime contained
hi def link tjp_overtime_booking Type
syn keyword tjp_sloppy_booking sloppy contained
hi def link tjp_sloppy_booking Type
syn keyword tjp_chargeset chargeset contained
hi def link tjp_chargeset Type
syn keyword tjp_columnid_activetasks activetasks
hi def link tjp_columnid_activetasks Type
syn keyword tjp_columnid_annualleave annualleave
hi def link tjp_columnid_annualleave Type
syn keyword tjp_columnid_annualleavebalance annualleavebalance
hi def link tjp_columnid_annualleavebalance Type
syn keyword tjp_columnid_annualleavelist annualleavelist
hi def link tjp_columnid_annualleavelist Type
syn keyword tjp_columnid_alert alert
hi def link tjp_columnid_alert Type
syn keyword tjp_columnid_alertmessages alertmessages
hi def link tjp_columnid_alertmessages Type
syn keyword tjp_columnid_alertsummaries alertsummaries
hi def link tjp_columnid_alertsummaries Type
syn keyword tjp_columnid_alerttrend alerttrend
hi def link tjp_columnid_alerttrend Type
syn keyword tjp_columnid_balance balance
hi def link tjp_columnid_balance Type
syn keyword tjp_columnid_bsi bsi
hi def link tjp_columnid_bsi Type
syn keyword tjp_columnid_chart chart
hi def link tjp_columnid_chart Type
syn keyword tjp_columnid_children children
hi def link tjp_columnid_children Type
syn keyword tjp_columnid_closedtasks closedtasks
hi def link tjp_columnid_closedtasks Type
syn keyword tjp_columnid_competitorcount competitorcount
hi def link tjp_columnid_competitorcount Type
syn keyword tjp_columnid_competitors competitors
hi def link tjp_columnid_competitors Type
syn keyword tjp_columnid_complete complete
hi def link tjp_columnid_complete Type
syn keyword tjp_columnid_completed completed
hi def link tjp_columnid_completed Type
syn keyword tjp_columnid_criticalness criticalness
hi def link tjp_columnid_criticalness Type
syn keyword tjp_columnid_cost cost
hi def link tjp_columnid_cost Type
syn keyword tjp_columnid_daily daily
hi def link tjp_columnid_daily Type
syn keyword tjp_columnid_directreports directreports
hi def link tjp_columnid_directreports Type
syn keyword tjp_columnid_duration duration
hi def link tjp_columnid_duration Type
syn keyword tjp_columnid_duties duties
hi def link tjp_columnid_duties Type
syn keyword tjp_columnid_efficiency efficiency
hi def link tjp_columnid_efficiency Type
syn keyword tjp_columnid_effort effort
hi def link tjp_columnid_effort Type
syn keyword tjp_columnid_effortdone effortdone
hi def link tjp_columnid_effortdone Type
syn keyword tjp_columnid_effortleft effortleft
hi def link tjp_columnid_effortleft Type
syn keyword tjp_columnid_email email
hi def link tjp_columnid_email Type
syn keyword tjp_columnid_end end
hi def link tjp_columnid_end Type
syn keyword tjp_columnid_flags flags
hi def link tjp_columnid_flags Type
syn keyword tjp_columnid_followers followers
hi def link tjp_columnid_followers Type
syn keyword tjp_columnid_freetime freetime
hi def link tjp_columnid_freetime Type
syn keyword tjp_columnid_freework freework
hi def link tjp_columnid_freework Type
syn keyword tjp_columnid_fte fte
hi def link tjp_columnid_fte Type
syn keyword tjp_columnid_gauge gauge
hi def link tjp_columnid_gauge Type
syn keyword tjp_columnid_headcount headcount
hi def link tjp_columnid_headcount Type
syn keyword tjp_columnid_hierarchindex hierarchindex
hi def link tjp_columnid_hierarchindex Type
syn keyword tjp_columnid_hourly hourly
hi def link tjp_columnid_hourly Type
syn keyword tjp_columnid_id id
hi def link tjp_columnid_id Type
syn keyword tjp_columnid_index index
hi def link tjp_columnid_index Type
syn keyword tjp_columnid_inputs inputs
hi def link tjp_columnid_inputs Type
syn keyword tjp_columnid_journal journal
hi def link tjp_columnid_journal Type
syn keyword tjp_columnid_journal_sub journal_sub
hi def link tjp_columnid_journal_sub Type
syn keyword tjp_columnid_journalmessages journalmessages
hi def link tjp_columnid_journalmessages Type
syn keyword tjp_columnid_journalsummaries journalsummaries
hi def link tjp_columnid_journalsummaries Type
syn keyword tjp_columnid_line line
hi def link tjp_columnid_line Type
syn keyword tjp_columnid_managers managers
hi def link tjp_columnid_managers Type
syn keyword tjp_columnid_maxend maxend
hi def link tjp_columnid_maxend Type
syn keyword tjp_columnid_maxstart maxstart
hi def link tjp_columnid_maxstart Type
syn keyword tjp_columnid_minend minend
hi def link tjp_columnid_minend Type
syn keyword tjp_columnid_minstart minstart
hi def link tjp_columnid_minstart Type
syn keyword tjp_columnid_monthly monthly
hi def link tjp_columnid_monthly Type
syn keyword tjp_columnid_no no
hi def link tjp_columnid_no Type
syn keyword tjp_columnid_name name
hi def link tjp_columnid_name Type
syn keyword tjp_columnid_note note
hi def link tjp_columnid_note Type
syn keyword tjp_columnid_opentasks opentasks
hi def link tjp_columnid_opentasks Type
syn keyword tjp_columnid_pathcriticalness pathcriticalness
hi def link tjp_columnid_pathcriticalness Type
syn keyword tjp_columnid_precursors precursors
hi def link tjp_columnid_precursors Type
syn keyword tjp_columnid_priority priority
hi def link tjp_columnid_priority Type
syn keyword tjp_columnid_quarterly quarterly
hi def link tjp_columnid_quarterly Type
syn keyword tjp_columnid_rate rate
hi def link tjp_columnid_rate Type
syn keyword tjp_columnid_reports reports
hi def link tjp_columnid_reports Type
syn keyword tjp_columnid_resources resources
hi def link tjp_columnid_resources Type
syn keyword tjp_columnid_responsible responsible
hi def link tjp_columnid_responsible Type
syn keyword tjp_columnid_revenue revenue
hi def link tjp_columnid_revenue Type
syn keyword tjp_columnid_scenario scenario
hi def link tjp_columnid_scenario Type
syn keyword tjp_columnid_scheduling scheduling
hi def link tjp_columnid_scheduling Type
syn keyword tjp_columnid_seqno seqno
hi def link tjp_columnid_seqno Type
syn keyword tjp_columnid_sickleave sickleave
hi def link tjp_columnid_sickleave Type
syn keyword tjp_columnid_specialleave specialleave
hi def link tjp_columnid_specialleave Type
syn keyword tjp_columnid_start start
hi def link tjp_columnid_start Type
syn keyword tjp_columnid_status status
hi def link tjp_columnid_status Type
syn keyword tjp_columnid_targets targets
hi def link tjp_columnid_targets Type
syn keyword tjp_columnid_turnover turnover
hi def link tjp_columnid_turnover Type
syn keyword tjp_columnid_wbs wbs
hi def link tjp_columnid_wbs Type
syn keyword tjp_columnid_unpaidleave unpaidleave
hi def link tjp_columnid_unpaidleave Type
syn keyword tjp_columnid_weekly weekly
hi def link tjp_columnid_weekly Type
syn keyword tjp_columnid_yearly yearly
hi def link tjp_columnid_yearly Type
syn keyword tjp_celltext_column celltext contained
hi def link tjp_celltext_column Type
syn keyword tjp_cellcolor_column cellcolor contained
hi def link tjp_cellcolor_column Type
syn keyword tjp_end_column end contained
hi def link tjp_end_column Type
syn keyword tjp_fontcolor_column fontcolor contained
hi def link tjp_fontcolor_column Type
syn keyword tjp_halign_column halign contained
hi def link tjp_halign_column Type
syn keyword tjp_listitem_column listitem contained
hi def link tjp_listitem_column Type
syn keyword tjp_listtype_column listtype contained
hi def link tjp_listtype_column Type
syn keyword tjp_period_column period contained
hi def link tjp_period_column Type
syn keyword tjp_scale_column scale contained
hi def link tjp_scale_column Type
syn keyword tjp_start_column start contained
hi def link tjp_start_column Type
syn keyword tjp_timeformat1 timeformat1 contained
hi def link tjp_timeformat1 Type
syn keyword tjp_timeformat2 timeformat2 contained
hi def link tjp_timeformat2 Type
syn keyword tjp_title_column title contained
hi def link tjp_title_column Type
syn keyword tjp_tooltip_column tooltip contained
hi def link tjp_tooltip_column Type
syn keyword tjp_width_column width contained
hi def link tjp_width_column Type
syn keyword tjp_currencyformat currencyformat contained
hi def link tjp_currencyformat Type
syn keyword tjp_details details contained
hi def link tjp_details Type
syn keyword tjp_definitions definitions contained
hi def link tjp_definitions Type
syn keyword tjp_formats_export formats contained
hi def link tjp_formats_export Type
syn keyword tjp_resourceattributes resourceattributes contained
hi def link tjp_resourceattributes Type
syn keyword tjp_scenarios_export scenarios contained
hi def link tjp_scenarios_export Type
syn keyword tjp_taskattributes taskattributes contained
hi def link tjp_taskattributes Type
syn keyword tjp_taskroot_export taskroot contained
hi def link tjp_taskroot_export Type
syn keyword tjp_timezone_export timezone contained
hi def link tjp_timezone_export Type
syn keyword tjp_date_extend date contained
hi def link tjp_date_extend Type
syn keyword tjp_number_extend number contained
hi def link tjp_number_extend Type
syn keyword tjp_reference_extend reference contained
hi def link tjp_reference_extend Type
syn keyword tjp_richtext_extend richtext contained
hi def link tjp_richtext_extend Type
syn keyword tjp_text_extend text contained
hi def link tjp_text_extend Type
syn keyword tjp_inherit_extend inherit contained
hi def link tjp_inherit_extend Type
syn keyword tjp_scenariospecific_extend scenariospecific contained
hi def link tjp_scenariospecific_extend Type
syn keyword tjp_fail fail contained
hi def link tjp_fail Type
syn keyword tjp_formats formats contained
hi def link tjp_formats Type
syn keyword tjp_hasalert hasalert contained
hi def link tjp_hasalert Type
syn keyword tjp_isactive isactive contained
hi def link tjp_isactive Type
syn keyword tjp_ischildof ischildof contained
hi def link tjp_ischildof Type
syn keyword tjp_isdependencyof isdependencyof contained
hi def link tjp_isdependencyof Type
syn keyword tjp_isdutyof isdutyof contained
hi def link tjp_isdutyof Type
syn keyword tjp_isfeatureof isfeatureof contained
hi def link tjp_isfeatureof Type
syn keyword tjp_isleaf isleaf contained
hi def link tjp_isleaf Type
syn keyword tjp_ismilestone ismilestone contained
hi def link tjp_ismilestone Type
syn keyword tjp_isongoing isongoing contained
hi def link tjp_isongoing Type
syn keyword tjp_isresource isresource contained
hi def link tjp_isresource Type
syn keyword tjp_isresponsibilityof isresponsibilityof contained
hi def link tjp_isresponsibilityof Type
syn keyword tjp_istask istask contained
hi def link tjp_istask Type
syn keyword tjp_isvalid isvalid contained
hi def link tjp_isvalid Type
syn keyword tjp_treelevel treelevel contained
hi def link tjp_treelevel Type
syn keyword tjp_halign_center center
hi def link tjp_halign_center Type
syn keyword tjp_halign_left left
hi def link tjp_halign_left Type
syn keyword tjp_halign_right right
hi def link tjp_halign_right Type
syn keyword tjp_headline headline contained
hi def link tjp_headline Type
syn keyword tjp_hideaccount hideaccount contained
hi def link tjp_hideaccount Type
syn keyword tjp_hidejournalentry hidejournalentry contained
hi def link tjp_hidejournalentry Type
syn keyword tjp_hideresource hideresource contained
hi def link tjp_hideresource Type
syn keyword tjp_hidetask hidetask contained
hi def link tjp_hidetask Type
syn keyword tjp_icalreport icalreport contained
hi def link tjp_icalreport Type
syn keyword tjp_novevents novevents contained
hi def link tjp_novevents Type
syn keyword tjp_scenario_ical scenario contained
hi def link tjp_scenario_ical Type
syn keyword tjp_accountprefix accountprefix contained
hi def link tjp_accountprefix Type
syn keyword tjp_reportprefix reportprefix contained
hi def link tjp_reportprefix Type
syn keyword tjp_resourceprefix resourceprefix contained
hi def link tjp_resourceprefix Type
syn keyword tjp_taskprefix taskprefix contained
hi def link tjp_taskprefix Type
syn keyword tjp_journalattributes journalattributes contained
hi def link tjp_journalattributes Type
syn keyword tjp_journalentry journalentry contained
hi def link tjp_journalentry Type
syn keyword tjp_alert alert contained
hi def link tjp_alert Type
syn keyword tjp_flags_journalentry flags contained
hi def link tjp_flags_journalentry Type
syn keyword tjp_leaveallowance leaveallowances contained
hi def link tjp_leaveallowance Type
syn keyword tjp_leaves leaves
hi def link tjp_leaves Type
syn keyword tjp_end_limit end contained
hi def link tjp_end_limit Type
syn keyword tjp_period_limit period contained
hi def link tjp_period_limit Type
syn keyword tjp_resources_limit resources contained
hi def link tjp_resources_limit Type
syn keyword tjp_start_limit start contained
hi def link tjp_start_limit Type
syn keyword tjp_dailymax dailymax contained
hi def link tjp_dailymax Type
syn keyword tjp_dailymin dailymin contained
hi def link tjp_dailymin Type
syn keyword tjp_maximum maximum contained
hi def link tjp_maximum Type
syn keyword tjp_minimum minimum contained
hi def link tjp_minimum Type
syn keyword tjp_monthlymax monthlymax contained
hi def link tjp_monthlymax Type
syn keyword tjp_monthlymin monthlymin contained
hi def link tjp_monthlymin Type
syn keyword tjp_weeklymax weeklymax contained
hi def link tjp_weeklymax Type
syn keyword tjp_weeklymin weeklymin contained
hi def link tjp_weeklymin Type
syn keyword tjp_loadunit loadunit contained
hi def link tjp_loadunit Type
syn keyword tjp_logicalexpression @
hi def link tjp_logicalexpression Type
syn keyword tjp_navigator navigator contained
hi def link tjp_navigator Type
syn keyword tjp_hidereport hidereport contained
hi def link tjp_hidereport Type
syn keyword tjp_timeoff_nikureport timeoff contained
hi def link tjp_timeoff_nikureport Type
syn keyword tjp_numberformat numberformat contained
hi def link tjp_numberformat Type
syn keyword tjp_alertlevels alertlevels contained
hi def link tjp_alertlevels Type
syn keyword tjp_currency currency contained
hi def link tjp_currency Type
syn keyword tjp_dailyworkinghours dailyworkinghours contained
hi def link tjp_dailyworkinghours Type
syn keyword tjp_extend extend contained
hi def link tjp_extend Type
syn keyword tjp_now now contained
hi def link tjp_now Type
syn keyword tjp_markdate markdate contained
hi def link tjp_markdate Type
syn keyword tjp_outputdir outputdir contained
hi def link tjp_outputdir Type
syn keyword tjp_shorttimeformat shorttimeformat contained
hi def link tjp_shorttimeformat Type
syn keyword tjp_timingresolution timingresolution contained
hi def link tjp_timingresolution Type
syn keyword tjp_trackingscenario trackingscenario contained
hi def link tjp_trackingscenario Type
syn keyword tjp_weekstartsmonday weekstartsmonday contained
hi def link tjp_weekstartsmonday Type
syn keyword tjp_weekstartssunday weekstartssunday contained
hi def link tjp_weekstartssunday Type
syn keyword tjp_yearlyworkingdays yearlyworkingdays contained
hi def link tjp_yearlyworkingdays Type
syn keyword tjp_auxdir auxdir
hi def link tjp_auxdir Type
syn keyword tjp_copyright copyright
hi def link tjp_copyright Type
syn keyword tjp_flags flags
hi def link tjp_flags Type
syn keyword tjp_limits limits contained
hi def link tjp_limits Type
syn keyword tjp_projectid projectid
hi def link tjp_projectid Type
syn keyword tjp_projectids projectids
hi def link tjp_projectids Type
syn keyword tjp_rate rate
hi def link tjp_rate Type
syn keyword tjp_vacation vacation
hi def link tjp_vacation Type
syn keyword tjp_purge purge contained
hi def link tjp_purge Type
syn keyword tjp_accountroot accountroot contained
hi def link tjp_accountroot Type
syn keyword tjp_auxdir_report auxdir contained
hi def link tjp_auxdir_report Type
syn keyword tjp_caption caption contained
hi def link tjp_caption Type
syn keyword tjp_center center contained
hi def link tjp_center Type
syn keyword tjp_columns columns contained
hi def link tjp_columns Type
syn keyword tjp_epilog epilog contained
hi def link tjp_epilog Type
syn keyword tjp_flags_report flags contained
hi def link tjp_flags_report Type
syn keyword tjp_footer footer contained
hi def link tjp_footer Type
syn keyword tjp_header header contained
hi def link tjp_header Type
syn keyword tjp_height height contained
hi def link tjp_height Type
syn keyword tjp_journalmode journalmode contained
hi def link tjp_journalmode Type
syn keyword tjp_left left contained
hi def link tjp_left Type
syn keyword tjp_opennodes opennodes contained
hi def link tjp_opennodes Type
syn keyword tjp_prolog prolog contained
hi def link tjp_prolog Type
syn keyword tjp_rawhtmlhead rawhtmlhead contained
hi def link tjp_rawhtmlhead Type
syn keyword tjp_right right contained
hi def link tjp_right Type
syn keyword tjp_scenarios scenarios contained
hi def link tjp_scenarios Type
syn keyword tjp_selfcontained selfcontained contained
hi def link tjp_selfcontained Type
syn keyword tjp_resourceroot resourceroot contained
hi def link tjp_resourceroot Type
syn keyword tjp_taskroot taskroot contained
hi def link tjp_taskroot Type
syn keyword tjp_timezone_report timezone contained
hi def link tjp_timezone_report Type
syn keyword tjp_width width contained
hi def link tjp_width Type
syn keyword tjp_end_report end contained
hi def link tjp_end_report Type
syn keyword tjp_period_report period contained
hi def link tjp_period_report Type
syn keyword tjp_start_report start contained
hi def link tjp_start_report Type
syn keyword tjp_title title contained
hi def link tjp_title Type
syn keyword tjp_email email contained
hi def link tjp_email Type
syn keyword tjp_efficiency efficiency contained
hi def link tjp_efficiency Type
syn keyword tjp_flags_resource flags contained
hi def link tjp_flags_resource Type
syn keyword tjp_booking_resource booking contained
hi def link tjp_booking_resource Type
syn keyword tjp_limits_resource limits contained
hi def link tjp_limits_resource Type
syn keyword tjp_managers managers contained
hi def link tjp_managers Type
syn keyword tjp_rate_resource rate contained
hi def link tjp_rate_resource Type
syn keyword tjp_shifts_resource shifts contained
hi def link tjp_shifts_resource Type
syn keyword tjp_vacation_resource vacation contained
hi def link tjp_vacation_resource Type
syn keyword tjp_rollupaccount rollupaccount contained
hi def link tjp_rollupaccount Type
syn keyword tjp_rollupresource rollupresource contained
hi def link tjp_rollupresource Type
syn keyword tjp_rolluptask rolluptask contained
hi def link tjp_rolluptask Type
syn keyword tjp_active active contained
hi def link tjp_active Type
syn keyword tjp_replace replace contained
hi def link tjp_replace Type
syn keyword tjp_timezone_shift timezone contained
hi def link tjp_timezone_shift Type
syn keyword tjp_vacation_shift vacation contained
hi def link tjp_vacation_shift Type
syn keyword tjp_sortjournalentries sortjournalentries contained
hi def link tjp_sortjournalentries Type
syn keyword tjp_sortaccounts sortaccounts contained
hi def link tjp_sortaccounts Type
syn keyword tjp_sortresources sortresources contained
hi def link tjp_sortresources Type
syn keyword tjp_sorttasks sorttasks contained
hi def link tjp_sorttasks Type
syn keyword tjp_flags_statussheet flags contained
hi def link tjp_flags_statussheet Type
syn keyword tjp_status_statussheet status contained
hi def link tjp_status_statussheet Type
syn keyword tjp_statussheet statussheet contained
hi def link tjp_statussheet Type
syn keyword tjp_summary summary contained
hi def link tjp_summary Type
syn keyword tjp_tagfile tagfile contained
hi def link tjp_tagfile Type
syn keyword tjp_adopt_task adopt contained
hi def link tjp_adopt_task Type
syn keyword tjp_note_task note contained
hi def link tjp_note_task Type
syn keyword tjp_gapduration gapduration contained
hi def link tjp_gapduration Type
syn keyword tjp_gaplength gaplength contained
hi def link tjp_gaplength Type
syn keyword tjp_onend onend contained
hi def link tjp_onend Type
syn keyword tjp_onstart onstart contained
hi def link tjp_onstart Type
syn keyword tjp_period_task period contained
hi def link tjp_period_task Type
syn keyword tjp_booking_task booking contained
hi def link tjp_booking_task Type
syn keyword tjp_charge charge contained
hi def link tjp_charge Type
syn keyword tjp_complete complete contained
hi def link tjp_complete Type
syn keyword tjp_depends depends contained
hi def link tjp_depends Type
syn keyword tjp_duration duration contained
hi def link tjp_duration Type
syn keyword tjp_effort effort contained
hi def link tjp_effort Type
syn keyword tjp_effortdone effortdone contained
hi def link tjp_effortdone Type
syn keyword tjp_effortleft effortleft contained
hi def link tjp_effortleft Type
syn keyword tjp_end end contained
hi def link tjp_end Type
syn keyword tjp_flags_task flags contained
hi def link tjp_flags_task Type
syn keyword tjp_length length contained
hi def link tjp_length Type
syn keyword tjp_limits_task limits contained
hi def link tjp_limits_task Type
syn keyword tjp_maxend maxend contained
hi def link tjp_maxend Type
syn keyword tjp_maxstart maxstart contained
hi def link tjp_maxstart Type
syn keyword tjp_milestone milestone contained
hi def link tjp_milestone Type
syn keyword tjp_minend minend contained
hi def link tjp_minend Type
syn keyword tjp_minstart minstart contained
hi def link tjp_minstart Type
syn keyword tjp_precedes precedes contained
hi def link tjp_precedes Type
syn keyword tjp_priority priority contained
hi def link tjp_priority Type
syn keyword tjp_projectid_task projectid contained
hi def link tjp_projectid_task Type
syn keyword tjp_responsible responsible contained
hi def link tjp_responsible Type
syn keyword tjp_scheduled scheduled contained
hi def link tjp_scheduled Type
syn keyword tjp_scheduling scheduling contained
hi def link tjp_scheduling Type
syn keyword tjp_schedulingmode schedulingmode contained
hi def link tjp_schedulingmode Type
syn keyword tjp_shifts_task shifts contained
hi def link tjp_shifts_task Type
syn keyword tjp_start start contained
hi def link tjp_start Type
syn keyword tjp_timeformat timeformat contained
hi def link tjp_timeformat Type
syn keyword tjp_timesheet timesheet contained
hi def link tjp_timesheet Type
syn keyword tjp_newtask newtask contained
hi def link tjp_newtask Type
syn keyword tjp_shift_timesheet shift contained
hi def link tjp_shift_timesheet Type
syn keyword tjp_task_timesheet task contained
hi def link tjp_task_timesheet Type
syn keyword tjp_timezone timezone contained
hi def link tjp_timezone Type
syn keyword tjp_flags_timesheet flags contained
hi def link tjp_flags_timesheet Type
syn keyword tjp_status_timesheet status contained
hi def link tjp_status_timesheet Type
syn keyword tjp_end_timesheet end contained
hi def link tjp_end_timesheet Type
syn keyword tjp_priority_timesheet priority contained
hi def link tjp_priority_timesheet Type
syn keyword tjp_remaining remaining contained
hi def link tjp_remaining Type
syn keyword tjp_work work contained
hi def link tjp_work Type
syn keyword tjp_warn warn contained
hi def link tjp_warn Type
syn keyword tjp_workinghours_project workinghours contained
hi def link tjp_workinghours_project Type
syn keyword tjp_workinghours_resource workinghours contained
hi def link tjp_workinghours_resource Type
syn keyword tjp_workinghours_shift workinghours contained
hi def link tjp_workinghours_shift Type
syn keyword tjp_aggregate aggregate contained
hi def link tjp_aggregate Type
syn keyword tjp_credits credits contained
hi def link tjp_credits Type
syn keyword tjp_flags_account flags contained
hi def link tjp_flags_account Type
syn match tjparg contained /\${.*}/
syn match tjpcomment /#.*$/
syn match tjpcomment "//.*$"
syn match tjpinclude /include.*$/
syn match tjpnumber /\s[-+]\?\d\+\(\.\d\+\)\?\([hdwmy]\|min\)\?/
syn match tjpdate /\s\d\{4}-\d\{1,2}-\d\{1,2}\(-\d\{1,2}:\d\{1,2}\(:\d\{1,2}\)\?\(-[-+]\?\d\{4}\)\?\)\?/
syn match tjptime /\s\d\{1,2}:\d\d\(:\d\d\)\?/
syn cluster tjpcommon contains=tjpcomment,tjpdate,tjptime,tjpstring,tjpnumber
syn region tjpblk_allocate start=/^\s*allocate\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_allocate,tjp_alternative,tjp_select,tjp_persistent,tjp_mandatory,tjp_shifts_allocate contained
syn region tjpblk_export start=/^\s*export\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_export,tjp_definitions,tjp_formats_export,tjp_hideresource,tjp_hidetask,tjp_loadunit,tjp_purge,tjp_end_report,tjp_period_report,tjp_accountreport,tjpblk_accountreport,tjp_export,tjpblk_export,tjp_resourcereport,tjpblk_resourcereport,tjp_taskreport,tjpblk_taskreport,tjp_textreport,tjpblk_textreport,tjp_tracereport,tjpblk_tracereport,tjp_start_report,tjp_resourceattributes,tjp_rollupresource,tjp_rolluptask,tjp_scenarios_export,tjp_taskattributes,tjp_taskroot_export,tjp_timezone_export
syn region tjpblk_date_extend start=/^\s*date\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_date_extend,tjp_inherit_extend,tjp_scenariospecific_extend contained
syn region tjpblk_number_extend start=/^\s*number\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_number_extend,tjp_inherit_extend,tjp_scenariospecific_extend contained
syn region tjpblk_reference_extend start=/^\s*reference\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_reference_extend,tjp_inherit_extend,tjp_scenariospecific_extend contained
syn region tjpblk_richtext_extend start=/^\s*richtext\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_richtext_extend,tjp_inherit_extend,tjp_scenariospecific_extend contained
syn region tjpblk_text_extend start=/^\s*text\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_text_extend,tjp_inherit_extend,tjp_scenariospecific_extend contained
syn region tjpblk_icalreport start=/^\s*icalreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_icalreport,tjp_hideresource,tjp_hidejournalentry,tjp_hidetask,tjp_end_report,tjp_period_report,tjp_start_report,tjp_rollupresource,tjp_rolluptask,tjp_novevents,tjp_scenario_ical
syn region tjpblk_journalentry start=/^\s*journalentry\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_journalentry,tjp_alert,tjp_author,tjp_flags_journalentry,tjp_summary,tjp_details contained
syn region tjpblk_dailymax start=/^\s*dailymax\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_dailymax,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained
syn region tjpblk_dailymin start=/^\s*dailymin\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_dailymin,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained
syn region tjpblk_maximum start=/^\s*maximum\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_maximum,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained
syn region tjpblk_minimum start=/^\s*minimum\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_minimum,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained
syn region tjpblk_monthlymax start=/^\s*monthlymax\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_monthlymax,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained
syn region tjpblk_monthlymin start=/^\s*monthlymin\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_monthlymin,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained
syn region tjpblk_weeklymax start=/^\s*weeklymax\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_weeklymax,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained
syn region tjpblk_weeklymin start=/^\s*weeklymin\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_weeklymin,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained
syn region tjpblk_navigator start=/^\s*navigator\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_navigator,tjp_hidereport
syn region tjpblk_nikureport start=/^\s*nikureport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_nikureport,tjp_formats,tjp_headline,tjp_hideresource,tjp_hidetask,tjp_numberformat,tjp_end_report,tjp_period_report,tjp_start_report,tjp_title,tjp_timeoff_nikureport
syn region tjpblk_extend start=/^\s*extend\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_extend,tjp_date_extend,tjpblk_date_extend,tjp_number_extend,tjpblk_number_extend,tjp_reference_extend,tjpblk_reference_extend,tjp_richtext_extend,tjpblk_richtext_extend,tjp_text_extend,tjpblk_text_extend contained
syn region tjpblk_project start=/^\s*project\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_project,tjp_alertlevels,tjp_currencyformat,tjp_currency,tjp_dailyworkinghours,tjp_extend,tjpblk_extend,tjp_include_project,tjp_journalentry,tjpblk_journalentry,tjp_now,tjp_markdate,tjp_numberformat,tjp_outputdir,tjp_scenario,tjpblk_scenario,tjp_shorttimeformat,tjp_timeformat,tjp_timezone,tjp_timingresolution,tjp_trackingscenario,tjp_weekstartsmonday,tjp_weekstartssunday,tjp_workinghours_project,tjp_yearlyworkingdays
syn region tjpblk_limits start=/^\s*limits\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_limits,tjp_dailymax,tjpblk_dailymax,tjp_dailymin,tjpblk_dailymin,tjp_maximum,tjpblk_maximum,tjp_minimum,tjpblk_minimum,tjp_monthlymax,tjpblk_monthlymax,tjp_monthlymin,tjpblk_monthlymin,tjp_weeklymax,tjpblk_weeklymax,tjp_weeklymin,tjpblk_weeklymin
syn region tjpblk_include_properties start=/^\s*include\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_include_properties,tjp_accountprefix,tjp_reportprefix,tjp_resourceprefix,tjp_taskprefix
syn region tjpblk_columns start=/^\s*columns\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_columns,tjp_celltext_column,tjp_cellcolor_column,tjp_end_column,tjp_fontcolor_column,tjp_halign_column,tjp_listitem_column,tjp_listtype_column,tjp_period_column,tjp_scale_column,tjp_start_column,tjp_timeformat1,tjp_timeformat2,tjp_title_column,tjp_tooltip_column,tjp_width_column contained
syn region tjpblk_resource start=/^\s*resource\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_resource,tjp_email,tjp_journalentry,tjpblk_journalentry,tjp_purge,tjp_resource,tjpblk_resource,tjp_chargeset,tjp_efficiency,tjp_flags_resource,tjp_booking_resource,tjpblk_booking_resource,tjp_fail,tjp_leaveallowance,tjp_leaves,tjp_limits_resource,tjpblk_limits_resource,tjp_managers,tjp_rate_resource,tjp_shifts_resource,tjp_vacation_resource,tjp_warn,tjp_workinghours_resource,tjp_supplement_resource,tjpblk_supplement_resource
syn region tjpblk_supplement_resource start=/^\s*supplement resource\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_supplement_resource,tjp_email,tjp_journalentry,tjpblk_journalentry,tjp_purge,tjp_resource,tjpblk_resource,tjp_chargeset,tjp_efficiency,tjp_flags_resource,tjp_booking_resource,tjpblk_booking_resource,tjp_fail,tjp_leaveallowance,tjp_leaves,tjp_limits_resource,tjpblk_limits_resource,tjp_managers,tjp_rate_resource,tjp_shifts_resource,tjp_vacation_resource,tjp_warn,tjp_workinghours_resource,tjp_supplement_resource,tjpblk_supplement_resource,tjp_supplement contained
syn region tjpblk_resourcereport start=/^\s*resourcereport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_resourcereport,tjp_accountroot,tjp_auxdir_report,tjp_balance,tjp_caption,tjp_center,tjp_columns,tjpblk_columns,tjp_currencyformat,tjp_end_report,tjp_epilog,tjp_flags_report,tjp_footer,tjp_formats,tjp_header,tjp_headline,tjp_hidejournalentry,tjp_hideaccount,tjp_hideresource,tjp_hidetask,tjp_height,tjp_journalattributes,tjp_journalmode,tjp_left,tjp_loadunit,tjp_numberformat,tjp_opennodes,tjp_period_report,tjp_prolog,tjp_purge,tjp_rawhtmlhead,tjp_accountreport,tjpblk_accountreport,tjp_export,tjpblk_export,tjp_resourcereport,tjpblk_resourcereport,tjp_taskreport,tjpblk_taskreport,tjp_textreport,tjpblk_textreport,tjp_tracereport,tjpblk_tracereport,tjp_right,tjp_rollupaccount,tjp_rollupresource,tjp_rolluptask,tjp_scenarios,tjp_selfcontained,tjp_sortaccounts,tjp_sortjournalentries,tjp_sortresources,tjp_sorttasks,tjp_start_report,tjp_resourceroot,tjp_taskroot,tjp_timeformat,tjp_timezone_report,tjp_title,tjp_width
syn region tjpblk_booking_resource start=/^\s*booking\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_booking_resource,tjp_overtime_booking,tjp_sloppy_booking contained
syn region tjpblk_limits_resource start=/^\s*limits\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_limits_resource,tjp_dailymax,tjpblk_dailymax,tjp_dailymin,tjpblk_dailymin,tjp_maximum,tjpblk_maximum,tjp_minimum,tjpblk_minimum,tjp_monthlymax,tjpblk_monthlymax,tjp_monthlymin,tjpblk_monthlymin,tjp_weeklymax,tjpblk_weeklymax,tjp_weeklymin,tjpblk_weeklymin contained
syn region tjpblk_scenario start=/^\s*scenario\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_scenario,tjp_active,tjp_scenario,tjpblk_scenario contained
syn region tjpblk_shift start=/^\s*shift\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_shift,tjp_shift,tjpblk_shift,tjp_leaves,tjp_replace,tjp_timezone_shift,tjp_vacation_shift,tjp_workinghours_shift
syn region tjpblk_status_statussheet start=/^\s*status\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_status_statussheet,tjp_author,tjp_details,tjp_flags_statussheet,tjp_summary contained
syn region tjpblk_statussheet start=/^\s*statussheet\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_statussheet,tjp_task_statussheet,tjpblk_task_statussheet
syn region tjpblk_statussheetreport start=/^\s*statussheetreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_statussheetreport,tjp_hideresource,tjp_hidetask,tjp_end_report,tjp_period_report,tjp_start_report,tjp_sortresources,tjp_sorttasks
syn region tjpblk_task_statussheet start=/^\s*task\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_task_statussheet,tjp_status_statussheet,tjpblk_status_statussheet,tjp_task_statussheet,tjpblk_task_statussheet contained
syn region tjpblk_tagfile start=/^\s*tagfile\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_tagfile,tjp_hideresource,tjp_hidetask,tjp_rollupresource,tjp_rolluptask
syn region tjpblk_task start=/^\s*task\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_task,tjp_adopt_task,tjp_journalentry,tjpblk_journalentry,tjp_note_task,tjp_purge,tjp_supplement_task,tjpblk_supplement_task,tjp_task,tjpblk_task,tjp_allocate,tjpblk_allocate,tjp_booking_task,tjpblk_booking_task,tjp_charge,tjp_chargeset,tjp_complete,tjp_depends,tjpblk_depends,tjp_duration,tjp_effort,tjp_effortdone,tjp_effortleft,tjp_end,tjp_flags_task,tjp_fail,tjp_length,tjp_limits_task,tjpblk_limits_task,tjp_maxend,tjp_maxstart,tjp_milestone,tjp_minend,tjp_minstart,tjp_period_task,tjp_precedes,tjpblk_precedes,tjp_priority,tjp_projectid_task,tjp_responsible,tjp_scheduled,tjp_scheduling,tjp_schedulingmode,tjp_shifts_task,tjp_start,tjp_warn
syn region tjpblk_supplement_task start=/^\s*supplement task\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_supplement_task,tjp_adopt_task,tjp_journalentry,tjpblk_journalentry,tjp_note_task,tjp_purge,tjp_supplement_task,tjpblk_supplement_task,tjp_task,tjpblk_task,tjp_allocate,tjpblk_allocate,tjp_booking_task,tjpblk_booking_task,tjp_charge,tjp_chargeset,tjp_complete,tjp_depends,tjpblk_depends,tjp_duration,tjp_effort,tjp_effortdone,tjp_effortleft,tjp_end,tjp_flags_task,tjp_fail,tjp_length,tjp_limits_task,tjpblk_limits_task,tjp_maxend,tjp_maxstart,tjp_milestone,tjp_minend,tjp_minstart,tjp_period_task,tjp_precedes,tjpblk_precedes,tjp_priority,tjp_projectid_task,tjp_responsible,tjp_scheduled,tjp_scheduling,tjp_schedulingmode,tjp_shifts_task,tjp_start,tjp_warn,tjp_supplement contained
syn region tjpblk_taskreport start=/^\s*taskreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_taskreport,tjp_accountroot,tjp_auxdir_report,tjp_balance,tjp_caption,tjp_center,tjp_columns,tjpblk_columns,tjp_currencyformat,tjp_end_report,tjp_epilog,tjp_flags_report,tjp_footer,tjp_formats,tjp_header,tjp_headline,tjp_hidejournalentry,tjp_hideaccount,tjp_hideresource,tjp_hidetask,tjp_height,tjp_journalattributes,tjp_journalmode,tjp_left,tjp_loadunit,tjp_numberformat,tjp_opennodes,tjp_period_report,tjp_prolog,tjp_purge,tjp_rawhtmlhead,tjp_accountreport,tjpblk_accountreport,tjp_export,tjpblk_export,tjp_resourcereport,tjpblk_resourcereport,tjp_taskreport,tjpblk_taskreport,tjp_textreport,tjpblk_textreport,tjp_tracereport,tjpblk_tracereport,tjp_right,tjp_rollupaccount,tjp_rollupresource,tjp_rolluptask,tjp_scenarios,tjp_selfcontained,tjp_sortaccounts,tjp_sortjournalentries,tjp_sortresources,tjp_sorttasks,tjp_start_report,tjp_resourceroot,tjp_taskroot,tjp_timeformat,tjp_timezone_report,tjp_title,tjp_width
syn region tjpblk_booking_task start=/^\s*booking\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_booking_task,tjp_overtime_booking,tjp_sloppy_booking contained
syn region tjpblk_depends start=/^\s*depends\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_depends,tjp_gapduration,tjp_gaplength,tjp_onend,tjp_onstart contained
syn region tjpblk_limits_task start=/^\s*limits\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_limits_task,tjp_dailymax,tjpblk_dailymax,tjp_dailymin,tjpblk_dailymin,tjp_maximum,tjpblk_maximum,tjp_minimum,tjpblk_minimum,tjp_monthlymax,tjpblk_monthlymax,tjp_monthlymin,tjpblk_monthlymin,tjp_weeklymax,tjpblk_weeklymax,tjp_weeklymin,tjpblk_weeklymin contained
syn region tjpblk_precedes start=/^\s*precedes\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_precedes,tjp_gapduration,tjp_gaplength,tjp_onend,tjp_onstart contained
syn region tjpblk_textreport start=/^\s*textreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_textreport,tjp_accountroot,tjp_auxdir_report,tjp_balance,tjp_caption,tjp_center,tjp_columns,tjpblk_columns,tjp_currencyformat,tjp_end_report,tjp_epilog,tjp_flags_report,tjp_footer,tjp_formats,tjp_header,tjp_headline,tjp_hidejournalentry,tjp_hideaccount,tjp_hideresource,tjp_hidetask,tjp_height,tjp_journalattributes,tjp_journalmode,tjp_left,tjp_loadunit,tjp_numberformat,tjp_opennodes,tjp_period_report,tjp_prolog,tjp_purge,tjp_rawhtmlhead,tjp_accountreport,tjpblk_accountreport,tjp_export,tjpblk_export,tjp_resourcereport,tjpblk_resourcereport,tjp_taskreport,tjpblk_taskreport,tjp_textreport,tjpblk_textreport,tjp_tracereport,tjpblk_tracereport,tjp_right,tjp_rollupaccount,tjp_rollupresource,tjp_rolluptask,tjp_scenarios,tjp_selfcontained,tjp_sortaccounts,tjp_sortjournalentries,tjp_sortresources,tjp_sorttasks,tjp_start_report,tjp_resourceroot,tjp_taskroot,tjp_timeformat,tjp_timezone_report,tjp_title,tjp_width
syn region tjpblk_timesheet start=/^\s*timesheet\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_timesheet,tjp_newtask,tjpblk_newtask,tjp_shift_timesheet,tjp_status_timesheet,tjpblk_status_timesheet,tjp_task_timesheet,tjpblk_task_timesheet
syn region tjpblk_newtask start=/^\s*newtask\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_newtask,tjp_end_timesheet,tjp_priority_timesheet,tjp_remaining,tjp_status_timesheet,tjpblk_status_timesheet,tjp_work contained
syn region tjpblk_task_timesheet start=/^\s*task\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_task_timesheet,tjp_end_timesheet,tjp_priority_timesheet,tjp_remaining,tjp_status_timesheet,tjpblk_status_timesheet,tjp_work contained
syn region tjpblk_timesheetreport start=/^\s*timesheetreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_timesheetreport,tjp_hideresource,tjp_hidetask,tjp_end_report,tjp_period_report,tjp_start_report,tjp_sortresources,tjp_sorttasks
syn region tjpblk_tracereport start=/^\s*tracereport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_tracereport,tjp_accountroot,tjp_auxdir_report,tjp_balance,tjp_caption,tjp_center,tjp_columns,tjpblk_columns,tjp_currencyformat,tjp_end_report,tjp_epilog,tjp_flags_report,tjp_footer,tjp_formats,tjp_header,tjp_headline,tjp_hidejournalentry,tjp_hideaccount,tjp_hideresource,tjp_hidetask,tjp_height,tjp_journalattributes,tjp_journalmode,tjp_left,tjp_loadunit,tjp_numberformat,tjp_opennodes,tjp_period_report,tjp_prolog,tjp_purge,tjp_rawhtmlhead,tjp_accountreport,tjpblk_accountreport,tjp_export,tjpblk_export,tjp_resourcereport,tjpblk_resourcereport,tjp_taskreport,tjpblk_taskreport,tjp_textreport,tjpblk_textreport,tjp_tracereport,tjpblk_tracereport,tjp_right,tjp_rollupaccount,tjp_rollupresource,tjp_rolluptask,tjp_scenarios,tjp_selfcontained,tjp_sortaccounts,tjp_sortjournalentries,tjp_sortresources,tjp_sorttasks,tjp_start_report,tjp_resourceroot,tjp_taskroot,tjp_timeformat,tjp_timezone_report,tjp_title,tjp_width
syn region tjpblk_status_timesheet start=/^\s*status\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_status_timesheet,tjp_details,tjp_flags_timesheet,tjp_summary contained
syn region tjpblk_account start=/^\s*account\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_account,tjp_account,tjpblk_account,tjp_aggregate,tjp_credits,tjp_flags_account
syn region tjpblk_accountreport start=/^\s*accountreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_accountreport,tjp_accountroot,tjp_auxdir_report,tjp_balance,tjp_caption,tjp_center,tjp_columns,tjpblk_columns,tjp_currencyformat,tjp_end_report,tjp_epilog,tjp_flags_report,tjp_footer,tjp_formats,tjp_header,tjp_headline,tjp_hidejournalentry,tjp_hideaccount,tjp_hideresource,tjp_hidetask,tjp_height,tjp_journalattributes,tjp_journalmode,tjp_left,tjp_loadunit,tjp_numberformat,tjp_opennodes,tjp_period_report,tjp_prolog,tjp_purge,tjp_rawhtmlhead,tjp_accountreport,tjpblk_accountreport,tjp_export,tjpblk_export,tjp_resourcereport,tjpblk_resourcereport,tjp_taskreport,tjpblk_taskreport,tjp_textreport,tjpblk_textreport,tjp_tracereport,tjpblk_tracereport,tjp_right,tjp_rollupaccount,tjp_rollupresource,tjp_rolluptask,tjp_scenarios,tjp_selfcontained,tjp_sortaccounts,tjp_sortjournalentries,tjp_sortresources,tjp_sorttasks,tjp_start_report,tjp_resourceroot,tjp_taskroot,tjp_timeformat,tjp_timezone_report,tjp_title,tjp_width
syn region tjpblk_macro start=/macro\s\+\h\w*\s*\[/ end=/\]$/ transparent fold contains=ALL
syn region tjpstring start=/"/ skip=/\\"/ end=/"/
syn region tjpstring start=/'/ skip=/\\'/ end=/'/
syn region tjpstring start=/\s-8<-$/ end=/^\s*->8-/ fold
syn region tjpmlcomment start=+/\*+ end=+\*/+
syn sync fromstart
set foldmethod=syntax
hi def link tjp_macro PreProc
hi def link tjp_supplement Function
hi def link tjp_project Function
hi def link tjpproperty Function
hi def link tjpattribute Type
hi def link tjparg Special
hi def link tjpstring String
hi def link tjpcomment Comment
hi def link tjpmlcomment Comment
hi def link tjpinclude Include
hi def link tjpdate Constant
hi def link tjptime Constant
hi def link tjpnumber Number
let b:current_syntax = "tjp"
" Support running tj3 from within vim. Just type ':make your_project.tjp' to
" activate it.
setlocal makeprg=tj3\ --silent
" Support browsing the man page by typing Shift-k while having the cursor over
" any syntax keyword
setlocal keywordprg=tj3man
" Remap Ctrl-] to show full ID of property defined in the current
" line. This requires a current ctags file (generated by 'tagfile'
" report') to be present in the directory where vim was started.
map <C-]> :call ShowFullID()<CR>
function! ShowFullID()
let linenumber = line(".")
let filename = bufname("%")
execute "!grep '".filename."\t".linenumber.";' tags|cut -f 1"
endfunction
augroup TaskJugglerSource
" Remove all trailing white spaces from line ends when saving files
" Note: This overwrites the s mark.
autocmd BufWritePre *.tj[ip] mark s | %s/\s\+$//e | normal `s
augroup END

View File

@@ -0,0 +1,84 @@
project "My TODO List" 2011-01-01 +5y {
# The now date is only set to keep the reports constant. In a real
# list you would _not_ set a now date.
now 2011-12-20
}
task "Errands" {
priority 5
task "By some milk" {
end 2011-12-13
complete 100
priority 7
}
task "Pickup Jacket from dry cleaner" {
end 2011-12-18
complete 0
note "Smith Dry Cleaners"
}
task "Buy present for wife" {
end 2011-12-23
note "Have a good idea first"
journalentry 2011-12-10 "Maybe a ring?"
journalentry 2011-12-14 "Too expensive. Some book?"
}
}
task "Long term projects" {
priority 3
task "Buy new car" {
end 2011-05-11
complete 100
priority 6
}
task "Build boat" {
end 2013-04-01
complete 42
}
}
macro cellcol [
cellcolor (plan.end < ${now}) & (plan.gauge = "behind schedule") "#FF0000"
cellcolor plan.gauge = "behind schedule" "#FFFF00"
]
navigator navbar
textreport frame "" {
formats html
header -8<-
== My ToDo List for ${today} ==
<[navigator id="navbar"]>
->8-
footer "----"
columns name,
end { title "Due Date" ${cellcol} },
complete,
priority,
note,
journal { celltext 1 ""
tooltip 1 "<-query attribute='journal'->"
width 70 }
taskreport "TODOs due today" {
hidetask (plan.complete >= 100) | (plan.end > %{${now} +1d})
journalattributes date, headline, summary, details
}
taskreport "TODOs due within a week" {
hidetask (plan.complete >= 100) | (plan.end > %{${now} +1w})
journalattributes date, headline, summary, details
}
taskreport "All open TODOs" {
hidetask plan.complete >= 100
journalattributes date, headline, summary, details
}
taskreport "Completed TODOs" {
hidetask plan.complete < 100
}
purge formats
}

View File

@@ -0,0 +1,496 @@
/*
* This file contains an example project. It is part of the
* TaskJuggler project management tool. It uses a made up software
* development project to demonstrate some of the basic features of
* TaskJuggler. Please see the TaskJuggler manual for a more detailed
* description of the various syntax elements.
*/
project acso "Accounting Software" 2002-01-16 +4m {
# Set the default time zone for the project. If not specified, UTC
# is used.
timezone "Europe/Paris"
# Hide the clock time. Only show the date.
timeformat "%Y-%m-%d"
# Use US format for numbers
numberformat "-" "" "," "." 1
# Use US financial format for currency values. Don't show cents.
currencyformat "(" ")" "," "." 0
# Pick a day during the project that will be reported as 'today' in
# the project reports. If not specified, the current day will be
# used, but this will likely be outside of the project range, so it
# can't be seen in the reports.
now 2002-03-05-13:00
# The currency for all money values is the US Dollar.
currency "USD"
# We want to compare the baseline scenario to one with a slightly
# delayed start.
scenario plan "Plan" {
scenario delayed "Delayed"
}
extend resource {
text Phone "Phone"
}
}
# This is not a real copyright for this file. It's just used as an example.
copyright "© 2002 Crappy Software, Inc."
# The daily default rate of all resources. This can be overridden for each
# resource. We specify this, so that we can do a good calculation of
# the costs of the project.
rate 390.0
# Register Good Friday as a global holiday for all resources.
leaves holiday "Good Friday" 2002-03-29
flags team
# This is one way to form teams
macro allocate_developers [
allocate dev1
allocate dev2
allocate dev3
]
# In order to do a simple profit and loss analysis of the project we
# specify accounts. One for the development costs, one for the
# documentation costs, and one account to credit the customer payments
# to.
account cost "Project Cost" {
account dev "Development"
account doc "Documentation"
}
account rev "Payments"
# The Profit&Loss analysis should be rev - cost accounts.
balance cost rev
resource boss "Paul Henry Bullock" {
email "phb@crappysoftware.com"
Phone "x100"
rate 480
}
resource dev "Developers" {
managers boss
resource dev1 "Paul Smith" {
email "paul@crappysoftware.com"
Phone "x362"
rate 350.0
}
resource dev2 "Sébastien Bono" {
email "SBono@crappysoftware.com"
Phone "x234"
}
resource dev3 "Klaus Müller" {
email "Klaus.Mueller@crappysoftware.com"
Phone "x490"
leaves annual 2002-02-01 - 2002-02-05
}
flags team
}
resource misc "The Others" {
managers boss
resource test "Peter Murphy" {
email "murphy@crappysoftware.com"
Phone "x666"
limits { dailymax 6.4h }
rate 310.0
}
resource doc "Dim Sung" {
email "sung@crappysoftware.com"
Phone "x482"
rate 300.0
leaves annual 2002-03-11 - 2002-03-16
}
flags team
}
# Now we specify the work packages. The whole project is described as
# a task that contains subtasks. These subtasks are then broken down
# into smaller tasks and so on. The innermost tasks describe the real
# work and have resources allocated to them. Many attributes of tasks
# are inherited from the enclosing task. This saves you a lot of typing.
task AcSo "Accounting Software" {
# All work-related costs will be booked to this account unless the
# subtasks specify something different.
chargeset dev
# For the duration of the project we have running cost that are not
# included in the labor cost.
charge 170 perday
responsible boss
task spec "Specification" {
# The effort to finish this task is 20 man-days.
effort 20d
# Now we use the macro declared above to allocate the resources
# for this task. Because they can work in parallel, they may finish this
# task earlier than in 20 working-days.
${allocate_developers}
# Each task without subtasks must have a start or an end
# criterion and a duration. For this task we use a reference to a
# milestone defined further below as the start criterion. So this task
# can not start before the specified milestone has been reached.
# References to other tasks may be relative. Each exclamation mark (!)
# means 'in the scope of the enclosing task'. To descent into a task, the
# fullstop (.) together with the id of the tasks have to be specified.
depends !deliveries.start
}
task software "Software Development" {
# The software is the most critical task of the project. So we set
# the priority of this task (and all its subtasks) to 1000, the top
# priority. The higher the priority, the more likely the task will
# get the requested resources.
priority 1000
# All subtasks depend on the specification task.
depends !spec
responsible dev1
task database "Database coupling" {
effort 20d
allocate dev1, dev2
journalentry 2002-02-03 "Problems with the SQL Libary" {
author dev1
alert yellow
summary -8<-
We ran into some compatibility problems with the SQL
Library.
->8-
details -8<-
We have already contacted the vendor and are now waiting for
their advise.
->8-
}
}
task gui "Graphical User Interface" {
effort 35d
# This task has taken 5 man-days more than originally planned.
# We record this as well, so that we can generate reports that
# compare the delayed schedule of the project to the original plan.
delayed:effort 40d
depends !database, !backend
allocate dev2, dev3
# Resource dev2 should only work 6 hours per day on this task.
limits {
dailymax 6h {
resources dev2
}
}
}
task backend "Back-End Functions" {
effort 30d
# This task is behind schedule, because it should have been
# finished already. To document this, we specify that the task
# is 95% completed. If nothing is specified, TaskJuggler assumes
# that the task is on schedule and computes the completion rate
# according to the current day and the plan data.
complete 95
depends !database
allocate dev1, dev2
}
}
task test "Software testing" {
task alpha "Alpha Test" {
# Efforts can not only be specified as man-days, but also as
# man-weeks, man-hours, etc. By default, TaskJuggler assumes
# that a man-week is 5 man-days or 40 man-hours. These values
# can be changed, of course.
effort 1w
# This task depends on a task in the scope of the enclosing
# task's enclosing task. So we need two exclamation marks (!!)
# to get there.
depends !!software
allocate test, dev2
note "Hopefully most bugs will be found and fixed here."
journalentry 2002-03-01 "Contract with Peter not yet signed" {
author boss
alert red
summary -8<-
The paperwork is stuck with HR and I can't hunt it down.
->8-
details -8<-
If we don't get the contract closed within the next week,
the start of the testing is at risk.
->8-
}
}
task beta "Beta Test" {
effort 4w
depends !alpha
allocate test, dev1
}
}
task manual "Manual" {
effort 10w
depends !deliveries.start
allocate doc, dev3
purge chargeset
chargeset doc
journalentry 2002-02-28 "User manual completed" {
author boss
summary "The doc writers did a really great job to finish on time."
}
}
task deliveries "Milestones" {
# Some milestones have customer payments associated with them. We
# credit these payments to the 'rev' account.
purge chargeset
chargeset rev
task start "Project start" {
# A task that has no duration is a milestone. It only needs a
# start or end criterion. All other tasks depend on this task.
# Here we use the built-in macro ${projectstart} to align the
# start of the task with the above specified project time frame.
start ${projectstart}
# For some reason the actual start of the project got delayed.
# We record this, so that we can compare the planned run to the
# delayed run of the project.
delayed:start 2002-01-20
# At the beginning of this task we receive a payment from the
# customer. This is credited to the account associated with this
# task when the task starts.
charge 21000.0 onstart
}
task prev "Technology Preview" {
depends !!software.backend
charge 31000.0 onstart
note "All '''major''' features should be usable."
}
task beta "Beta version" {
depends !!test.alpha
charge 13000.0 onstart
note "Fully functional, may contain bugs."
}
task done "Ship Product to Customer" {
# The next line can be uncommented to trigger a warning about
# the project being late. For all tasks, limits for the start and
# end values can be specified. Those limits are checked after the
# project has been scheduled. For all violated limits a warning
# is issued.
# maxend 2002-04-17
depends !!test.beta, !!manual
charge 33000.0 onstart
note "All priority 1 and 2 bugs must be fixed."
}
}
}
# Now the project has been specified completely. Stopping here would
# result in a valid TaskJuggler file that could be processed and
# scheduled. But no reports would be generated to visualize the
# results.
navigator navbar {
hidereport @none
}
macro TaskTip [
tooltip istask() -8<-
'''Start: ''' <-query attribute='start'->
'''End: ''' <-query attribute='end'->
----
'''Resources:'''
<-query attribute='resources'->
----
'''Precursors: '''
<-query attribute='precursors'->
----
'''Followers: '''
<-query attribute='followers'->
->8-
]
textreport frame "" {
header -8<-
== Accounting Software Project ==
<[navigator id="navbar"]>
->8-
footer "----"
textreport index "Overview" {
formats html
center '<[report id="overview"]>'
}
textreport "Status" {
formats html
center -8<-
<[report id="status.dashboard"]>
----
<[report id="status.completed"]>
----
<[report id="status.ongoing"]>
----
<[report id="status.future"]>
->8-
}
textreport development "Development" {
formats html
center '<[report id="development"]>'
}
textreport "Deliveries" {
formats html
center '<[report id="deliveries"]>'
}
textreport "ContactList" {
formats html
title "Contact List"
center '<[report id="contactList"]>'
}
textreport "ResourceGraph" {
formats html
title "Resource Graph"
center '<[report id="resourceGraph"]>'
}
}
# A traditional Gantt chart with a project overview.
taskreport overview "" {
header -8<-
=== Project Overview ===
The project is structured into 3 phases.
# Specification
# <-reportlink id='frame.development'->
# Testing
=== Original Project Plan ===
->8-
columns bsi { title 'WBS' },
name, start, end, effort, cost,
revenue, chart { ${TaskTip} }
# For this report we like to have the abbreviated weekday in front
# of the date. %a is the tag for this.
timeformat "%a %Y-%m-%d"
loadunit days
hideresource @all
balance cost rev
caption 'All effort values are in man days.'
footer -8<-
=== Staffing ===
All project phases are properly staffed. See [[ResourceGraph]] for
detailed resource allocations.
=== Current Status ===
The project started off with a delay of 4 days. This slightly affected
the original schedule. See [[Deliveries]] for the impact on the
delivery dates.
->8-
}
# Macro to set the background color of a cell according to the alert
# level of the task.
macro AlertColor [
cellcolor plan.alert = 0 "#00D000" # green
cellcolor plan.alert = 1 "#D0D000" # yellow
cellcolor plan.alert = 2 "#D00000" # red
]
taskreport status "" {
columns bsi { width 50 title 'WBS' }, name { width 150 },
start { width 100 }, end { width 100 },
effort { width 100 },
alert { tooltip plan.journal
!= '' "<-query attribute='journal'->" width 150 },
status { width 150 }
scenarios delayed
taskreport dashboard "" {
headline "Project Dashboard (<-query attribute='now'->)"
columns name { title "Task" ${AlertColor} width 200},
resources { width 200 ${AlertColor}
listtype bullets
listitem "<-query attribute='name'->"
start ${projectstart} end ${projectend} },
alerttrend { title "Trend" ${AlertColor} width 50 },
journal { width 350 ${AlertColor} }
journalmode status_up
journalattributes headline, author, date, summary, details
hidetask ~hasalert(0)
sorttasks alert.down, delayed.end.up
period %{${now} - 1w} +1w
}
taskreport completed "" {
headline "Already completed tasks"
hidetask ~(delayed.end <= ${now})
}
taskreport ongoing "" {
headline "Ongoing tasks"
hidetask ~((delayed.start <= ${now}) & (delayed.end > ${now}))
}
taskreport future "" {
headline "Future tasks"
hidetask ~(delayed.start > ${now})
}
}
# A list of tasks showing the resources assigned to each task.
taskreport development "" {
scenarios delayed
headline "Development - Resource Allocation Report"
columns bsi { title 'WBS' }, name, start, end, effort { title "Work" },
duration, chart { ${TaskTip} scale day width 500 }
timeformat "%Y-%m-%d"
hideresource ~(isleaf() & isleaf_())
sortresources name.up
}
# A list of all tasks with the percentage completed for each task
taskreport deliveries "" {
headline "Project Deliverables"
columns bsi { title 'WBS' }, name, start, end, note { width 150 }, complete,
chart { ${TaskTip} }
taskroot AcSo.deliveries
hideresource @all
scenarios plan, delayed
}
# A list of all employees with their contact details.
resourcereport contactList "" {
scenarios delayed
headline "Contact list and duty plan"
columns name,
email { celltext 1 "[mailto:<-email-> <-email->]" },
Phone,
managers { title "Manager" },
chart { scale day }
hideresource ~isleaf()
sortresources name.up
hidetask @all
}
# A graph showing resource allocation. It identifies whether each
# resource is under- or over-allocated for.
resourcereport resourceGraph "" {
scenarios delayed
headline "Resource Allocation Graph"
columns no, name, effort, rate, weekly { ${TaskTip} }
loadunit shortauto
# We only like to show leaf tasks for leaf resources.
hidetask ~(isleaf() & isleaf_())
sorttasks plan.start.up
}

View File

@@ -0,0 +1,72 @@
{
"comments": {
// symbol used for single line comment. Remove this entry if your language does not support line comments
"lineComment": "#",
// symbols used for start and end a block comment. Remove this entry if your language does not support block comments
"blockComment": [
"/*",
"*/"
]
},
// symbols used as brackets
"brackets": [
[
"{",
"}"
],
[
"[",
"]"
],
[
"(",
")"
]
],
// symbols that are auto closed when typing
"autoClosingPairs": [
[
"{",
"}"
],
[
"[",
"]"
],
[
"(",
")"
],
[
"\"",
"\""
],
[
"'",
"'"
]
],
// symbols that can be used to surround a selection
"surroundingPairs": [
[
"{",
"}"
],
[
"[",
"]"
],
[
"(",
")"
],
[
"\"",
"\""
],
[
"'",
"'"
]
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,72 @@
{
"name": "taskjuggler",
"displayName": "Taskjuggler",
"description": "This extension provides support for the project management software Taskjuggler.",
"version": "0.0.1",
"publisher": "felixfoertsch",
"engines": {
"vscode": "^1.65.0"
},
"categories": [
"Formatters",
"Programming Languages"
],
"activationEvents": [
"workspaceContains:**/*.tjp",
"workspaceContains:**/*.tji",
"onLanguage:taskjuggler",
"onCommand:taskjuggler.helloWorld"
],
"main": "./out/extension.js",
"contributes": {
"commands": [
{
"command": "taskjuggler.helloWorld",
"title": "Hello World"
}
],
"languages": [
{
"id": "taskjuggler",
"aliases": [
"Taskjuggler",
"TaskJuggler",
"tjp"
],
"extensions": [
".tjp",
".tji"
],
"configuration": "./language-configuration.json"
}
],
"grammars": [
{
"language": "taskjuggler",
"scopeName": "source.tjp",
"path": "./syntaxes/tjp.tmLanguage.json"
}
]
},
"scripts": {
"vscode:prepublish": "npm run compile",
"compile": "tsc -p ./",
"watch": "tsc -watch -p ./",
"pretest": "npm run compile && npm run lint",
"lint": "eslint src --ext ts",
"test": "node ./out/test/runTest.js"
},
"devDependencies": {
"@types/vscode": "^1.65.0",
"@types/glob": "^7.2.0",
"@types/mocha": "^9.1.0",
"@types/node": "14.x",
"@typescript-eslint/eslint-plugin": "^5.12.1",
"@typescript-eslint/parser": "^5.12.1",
"eslint": "^8.9.0",
"glob": "^7.2.0",
"mocha": "^9.2.1",
"typescript": "^4.5.5",
"@vscode/test-electron": "^2.1.2"
}
}

View File

@@ -0,0 +1,38 @@
'use strict';
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
console.log('Congratulations, your extension "vscode-extension-boilerplate" is now active!');
// The command has been defined in the package.json file
// Now provide the implementation of the command with registerCommand
// The commandId parameter must match the command field in package.json
let disposableHelloWorld = vscode.commands.registerCommand(
'taskjuggler.helloWorld', () => {
// Display a message box to the user
vscode.window.showInformationMessage('Hello World!');
});
context.subscriptions.push(disposableHelloWorld);
var disposableTJP = vscode.languages.registerDocumentFormattingEditProvider(
'taskjuggler',
formattingEditProvider);
// vscode.workspace.onDidChangeConfiguration(updateVKBeautify, this, context.subscriptions);
context.subscriptions.push(disposableTJP);
}
// this method is called when your extension is deactivated
export function deactivate() { }
const formattingEditProvider = {
provideDocumentFormattingEdits(document: vscode.TextDocument):
vscode.TextEdit[] {
const firstLine = document.lineAt(0);
// if (firstLine.text !== '42') {
// return [vscode.TextEdit.insert(firstLine.range.start, '42\n')];
// }
return [vscode.TextEdit.insert(firstLine.range.start, '')];
}
};

View File

@@ -0,0 +1,23 @@
import * as path from 'path';
import { runTests } from '@vscode/test-electron';
async function main() {
try {
// The folder containing the Extension Manifest package.json
// Passed to `--extensionDevelopmentPath`
const extensionDevelopmentPath = path.resolve(__dirname, '../../');
// The path to test runner
// Passed to --extensionTestsPath
const extensionTestsPath = path.resolve(__dirname, './suite/index');
// Download VS Code, unzip it and run the integration test
await runTests({ extensionDevelopmentPath, extensionTestsPath });
} catch (err) {
console.error('Failed to run tests');
process.exit(1);
}
}
main();

View File

@@ -0,0 +1,15 @@
import * as assert from 'assert';
// You can import and use all API from the 'vscode' module
// as well as import your extension to test it
import * as vscode from 'vscode';
// import * as myExtension from '../../extension';
suite('Extension Test Suite', () => {
vscode.window.showInformationMessage('Start all tests.');
test('Sample test', () => {
assert.strictEqual(-1, [1, 2, 3].indexOf(5));
assert.strictEqual(-1, [1, 2, 3].indexOf(0));
});
});

View File

@@ -0,0 +1,38 @@
import * as path from 'path';
import * as Mocha from 'mocha';
import * as glob from 'glob';
export function run(): Promise<void> {
// Create the mocha test
const mocha = new Mocha({
ui: 'tdd',
color: true
});
const testsRoot = path.resolve(__dirname, '..');
return new Promise((c, e) => {
glob('**/**.test.js', { cwd: testsRoot }, (err, files) => {
if (err) {
return e(err);
}
// Add files to the test suite
files.forEach(f => mocha.addFile(path.resolve(testsRoot, f)));
try {
// Run the mocha test
mocha.run(failures => {
if (failures > 0) {
e(new Error(`${failures} tests failed.`));
} else {
c();
}
});
} catch (err) {
console.error(err);
e(err);
}
});
});
}

View File

@@ -0,0 +1,51 @@
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "Taskjuggler",
"patterns": [
{
"include": "#comments"
},
{
"include": "#keywords"
},
{
"include": "#strings"
}
],
"repository": {
"comments": {
"patterns": [
{
"name": "comment.line.tjp",
"begin": "#",
"end": "\n"
},
{
"name": "comment.block.tjp",
"begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",
"end": "\\*/"
}
]
},
"keywords": {
"patterns": [
{
"name": "keyword.control.tjp",
"match": "\\b(account|accountreport|allocate|booking|columns|dailymax|dailymin|date|depends|export|extend|icalreport|include|journalentry|limits|maximum|minimum|monthlymax|monthlymin|navigator|newtask|nikureport|number|precedes|project|reference|resource|resourcereport|richtext|scenario|shift|status|statussheet|statussheetreport|supplement|tagfile|task|taskreport|text|textreport|timesheet|timesheetreport|tracereport|weeklymax|weeklymin)\\b"
}
]
},
"strings": {
"name": "string.quoted.double.tjp",
"begin": "\"",
"end": "\"",
"patterns": [
{
"name": "constant.character.escape.tjp",
"match": "\\\\."
}
]
}
},
"scopeName": "source.tjp"
}

View File

@@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "ES2020",
"outDir": "out",
"lib": [
"ES2020"
],
"sourceMap": true,
"rootDir": "src",
"strict": true,
/* Report error when not all code paths in function return a value. */
"noImplicitReturns": true,
/* Report errors for fallthrough cases in switch statement. */
"noFallthroughCasesInSwitch": true,
/* Report errors on unused parameters. */
"noUnusedParameters": true,
},
"exclude": [
"node_modules",
".vscode-test"
]
}

View File

@@ -0,0 +1,29 @@
# Welcome to your VS Code Extension
## What's in the folder
* This folder contains all of the files necessary for your extension.
* `package.json` - this is the manifest file in which you declare your language support and define the location of the grammar file that has been copied into your extension.
* `syntaxes/tjp.tmLanguage.json` - this is the Text mate grammar file that is used for tokenization.
* `language-configuration.json` - this is the language configuration, defining the tokens that are used for comments and brackets.
## Get up and running straight away
* Make sure the language configuration settings in `language-configuration.json` are accurate.
* Press `F5` to open a new window with your extension loaded.
* Create a new file with a file name suffix matching your language.
* Verify that syntax highlighting works and that the language configuration settings are working.
## Make changes
* You can relaunch the extension from the debug toolbar after making changes to the files listed above.
* You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes.
## Add more language features
* To add features such as intellisense, hovers and validators check out the VS Code extenders documentation at <https://code.visualstudio.com/docs>
## Install your extension
* To start using your extension with Visual Studio Code copy it into the `<user home>/.vscode/extensions` folder and restart Code.
* To share your extension with the world, read on <https://code.visualstudio.com/docs> about publishing an extension.