You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+28-16Lines changed: 28 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
-
# codereader
1
+
# Code Reader+ v1.1
2
2
3
3
Home repo for our Windows Store app: https://www.microsoft.com/store/apps/9ntphrk6qlfg
4
4
5
-
There is no better place to communicate between developers than GitHub. This is the place for *codereader*. Report bugs, file issues, suggest features or contribute some code for the next release. :)
5
+
There is no better place to communicate between developers than GitHub. This is the place for *Code Reader+*. Report bugs, file issues, suggest features or contribute some code for the next release. :)
6
6
7
7
The planning and announcements would also be done here.
8
8
@@ -12,47 +12,56 @@ The planning and announcements would also be done here.
12
12
13
13
#### Protocols
14
14
15
-
1. Only git is supported via our own robin-git C# library; i.e. no current support for SVN, Mecurial or TFS
16
-
2. On git we only support git servers that use Smart Http protocol; i.e. no Dumb Http protocol supported
17
-
3. On GitHub we only support public repositories; Private repo access can be added though
15
+
1. Only git is supported via our own robin-git C# library; i.e. no current support for SVN, Mecurial, TFS or plain folder.
16
+
2. On git we only support git servers that use Smart Http protocol; i.e. no Dumb Http protocol supported.
17
+
3. On git only HTTP/HTTPS are supported, SSH can be added if there is demand.
18
+
4. On GitHub we only support public repositories; Private repo access is planned for v1.2.
18
19
19
-
#### Devices Dev/Tested On
20
+
#### C# (Language Service)
21
+
22
+
1. Analysis ability is up to C#6. Support of C#7 is planned with low priority.
23
+
2. Only basic Type information is collected. Type members includes methods, properties, fields, etc., and local variable declaration can be collected with more work not yet scheduled.
24
+
3. We don't yet *understand* the concepts of project and solution, thus analysis was on a commit (in git terms, it is tree-ish, i.e. a file directory). Therefore our type table needs to tolerant duplication, i.e. a type could be defined in multiple files.
25
+
4. Until we further optimise our ability to collect/access type info faster and reduce the storage footprint, it's not wise to analysis gigantic repositories, e.g. Corefx, without limiting the files to process.
20
26
21
-
1. Lenovo ThinkPad X1 Carbon 3rd gen (touchscreen), 8GB memory
3. Cube iWork12 12" Intel Z8300 CherryTrail 4GB memory, Windows 10 64 bit
24
27
25
-
#### Repo Size
28
+
#### Git Repo Size
26
29
27
30
1. Due to the limitation in current robin-git lib, we can only handle git repo size <= 2GB.
28
-
2. git resolve is very resource intensive, we have attempt to clone linux kernel repo on our 4GB tablet, and never able to complete the resolve to 100%, seems the OS terminated us without giving HockeyApp a chance to report exception. So if you have a huge repo in mind, don't use this app. We can add **--depth** support to robin-git in a later release.
31
+
2. git resolve is very resource intensive, we have attempted to clone Linux kernel repo on our 4GB tablet, and never able to complete the resolve to 100%, seems the OS terminated us without giving HockeyApp a chance to report exception. We will add **--depth** support to robin-git in v1.2 release.
29
32
30
33
#### UWP
31
34
32
35
1. We would wanted to make *git clone* truly run in the **background**, but two things are stopping us: one is that until the Anniversary Edition of Windows 10, we can't really run a background task indefinitely. Cloning a large repo could take a long time depending on the network bandwidth; second, *git smart http protocol* is stateless, it does not support partial downloading or resume a previous session. Thus the clone op always happen in the **foreground**, we suggest you to let the app stay in the foreground until the clone is done, and don't let the tablet **sleep**, especially for large repo. The *receiving* part can survive short pauses e.g. 2 or 3 minutes, seems the UWP sandbox is doing a great work to maintain the http connection with git server by *keep-alive* traffic; the *resolving* part can be paused much longer but it's CPU intensive, when the app was sent background, Windows 10 freeze it, when active again, the resolving would carry on.
33
36
34
-
#### Me
35
37
36
-
1. This is my first UWP app, I'm still learning all the magics.
38
+
#### Devices Dev/Tested On
39
+
40
+
1. Lenovo ThinkPad X1 Carbon 3rd gen (touchscreen), 8GB memory, Windows 10 pro 64 bit
41
+
2. AlldoCube iWork7 7" Intel Z3735G BayTrail 2GB memory, Windows 10 home 32bit
42
+
3. AlldoCube iWork12 12" Intel Z8300 CherryTrail 4GB memory, Windows 10 home 64 bit
37
43
38
44
39
45
## Design Principles
40
46
41
-
**codereader* is a reader, there is no plan to turn this into a *writer* or *IDE* in any sense.
47
+
**Code Reader+* is a reader, there is no plan to turn this into a *writer* or *IDE* in any sense.
42
48
* given above *read only* principle, we are unlikely to offer git *commit* or *push* in foreseeable future.
43
49
* there are plenty of hard problems to solve in the **read** side, if we could solve some of those we'll be helping the world on programming productivity and quality a lot.
44
50
* Touchscreen is great for consuming information (this is manifested by the popularity of *ipad*), *reading* code can be passive or active or both.
45
51
* Touch is our main interactive means in our app; although you can still use a keyboard and mouse, but that's a fallback.
46
52
***Offline** is pillar for our app, so we try to do everything within our app without you needing to jump to another app.
47
53
* we truly buy the **Immersive** modern UI design language, thus our UI is *minimalist*, giving you maximum screen real estate for viewing the code.
48
54
49
-
## Next Release
55
+
## Next Release v1.2
50
56
51
-
*Will be our *Language Story*, i.e. we will use Antlr4 for AST and enable our code viewer to have: Syntax Highlighting, Go to Definition, Line Number
57
+
*Retro back to *Git Story*: add Git Fetch/Pull, Clone with Depth, Checkout commit/single file, Access of GitHub private repositories with credentials.
52
58
53
59
54
60
## Known Issues
55
61
62
+
63
+
#### v1.1
64
+
56
65
1. On Repo List page, items are sorted by Likes, but not considering the exact time Likes are flagged. So the order might be different from your last session. This is by design unless we have a requirement to also take the flagging time into sort order.
57
66
58
67
2. On Repo Blade page, the total count for Commits only reflect what is already loaded, since it was backed by an IIncrementalSource. This is by design and we could do better to also show the real total once the robin-git library supports that.
@@ -68,6 +77,9 @@ The planning and announcements would also be done here.
Home repo for our Windows Store app: https://www.microsoft.com/store/apps/9ntphrk6qlfg
4
+
5
+
There is no better place to communicate between developers than GitHub. This is the place for *codereader*. Report bugs, file issues, suggest features or contribute some code for the next release. :)
6
+
7
+
The planning and announcements would also be done here.
8
+
9
+
10
+
## Limitations
11
+
12
+
13
+
#### Protocols
14
+
15
+
1. Only git is supported via our own robin-git C# library; i.e. no current support for SVN, Mecurial or TFS
16
+
2. On git we only support git servers that use Smart Http protocol; i.e. no Dumb Http protocol supported
17
+
3. On GitHub we only support public repositories; Private repo access can be added though
18
+
19
+
#### Devices Dev/Tested On
20
+
21
+
1. Lenovo ThinkPad X1 Carbon 3rd gen (touchscreen), 8GB memory
3. Cube iWork12 12" Intel Z8300 CherryTrail 4GB memory, Windows 10 64 bit
24
+
25
+
#### Repo Size
26
+
27
+
1. Due to the limitation in current robin-git lib, we can only handle git repo size <= 2GB.
28
+
2. git resolve is very resource intensive, we have attempt to clone linux kernel repo on our 4GB tablet, and never able to complete the resolve to 100%, seems the OS terminated us without giving HockeyApp a chance to report exception. So if you have a huge repo in mind, don't use this app. We can add **--depth** support to robin-git in a later release.
29
+
30
+
#### UWP
31
+
32
+
1. We would wanted to make *git clone* truly run in the **background**, but two things are stopping us: one is that until the Anniversary Edition of Windows 10, we can't really run a background task indefinitely. Cloning a large repo could take a long time depending on the network bandwidth; second, *git smart http protocol* is stateless, it does not support partial downloading or resume a previous session. Thus the clone op always happen in the **foreground**, we suggest you to let the app stay in the foreground until the clone is done, and don't let the tablet **sleep**, especially for large repo. The *receiving* part can survive short pauses e.g. 2 or 3 minutes, seems the UWP sandbox is doing a great work to maintain the http connection with git server by *keep-alive* traffic; the *resolving* part can be paused much longer but it's CPU intensive, when the app was sent background, Windows 10 freeze it, when active again, the resolving would carry on.
33
+
34
+
#### Me
35
+
36
+
1. This is my first UWP app, I'm still learning all the magics.
37
+
38
+
39
+
## Design Principles
40
+
41
+
**codereader* is a reader, there is no plan to turn this into a *writer* or *IDE* in any sense.
42
+
* given above *read only* principle, we are unlikely to offer git *commit* or *push* in foreseeable future.
43
+
* there are plenty of hard problems to solve in the **read** side, if we could solve some of those we'll be helping the world on programming productivity and quality a lot.
44
+
* Touchscreen is great for consuming information (this is manifested by the popularity of *ipad*), *reading* code can be passive or active or both.
45
+
* Touch is our main interactive means in our app; although you can still use a keyboard and mouse, but that's a fallback.
46
+
***Offline** is pillar for our app, so we try to do everything within our app without you needing to jump to another app.
47
+
* we truly buy the **Immersive** modern UI design language, thus our UI is *minimalist*, giving you maximum screen real estate for viewing the code.
48
+
49
+
## Next Release
50
+
51
+
* Will be our *Language Story*, i.e. we will use Antlr4 for AST and enable our code viewer to have: Syntax Highlighting, Go to Definition, Line Number
52
+
53
+
54
+
## Known Issues
55
+
56
+
1. On Repo List page, items are sorted by Likes, but not considering the exact time Likes are flagged. So the order might be different from your last session. This is by design unless we have a requirement to also take the flagging time into sort order.
57
+
58
+
2. On Repo Blade page, the total count for Commits only reflect what is already loaded, since it was backed by an IIncrementalSource. This is by design and we could do better to also show the real total once the robin-git library supports that.
59
+
60
+
3. On Repo Blade page, if you enable Global filter for "Likes" then disable it, the Commits blade will show the total commits count correctly, since we are trying to search for the selected item here without limiting how far we go, thus we enumerated everything with the side effect that we got the total commits. This can be improved.
61
+
62
+
4. On Repo Blade page, after you open up some levels, and toggle Global Likes Only button, for a blade that the opened item is not Liked, when you toggle Likes Only off, the blade does not scroll to show the opened item, this can be improved. Workaround: go to Code page and back.
63
+
64
+
5. On Repo Blade page, if you swipe open a folder on one level, while the next level is shown, if you swipe open a file on the same level as the folder, the file would be open in Code Page, if you go back Blade page, the opened folder would not close due to your selection of a file. This is for the convenience and can be improved for right use case.
65
+
66
+
67
+
## Proudly using
68
+
69
+
*https://github.com/Microsoft/UWPCommunityToolkit
70
+
*https://github.com/mbdavid/LiteDB
71
+
72
+
73
+
74
+
[](https://www.microsoft.com/store/apps/9ntphrk6qlfg?ocid=badge)
0 commit comments